Python to C race conditions - Raspberry Pi Forums


beste,

ik ben bezig met het maken van een koppeling tussen python en c via binary files. de koppeling tussen c naar python loopt perfect helaas werkt er maar 1 richting prefect. de koppeling van python naar c werkt immers minder goed. hier heb ik te maken met race conditions. als test heb ik in de python code elke 100ms een counter verhoogt en doorgestuurd naar de c file. soms doet de code het goed maar soms mis ik getalletjes. bv: 1,2,3,4,7,8,9,10 zoals men ziet 5 en 6 weg gevallen. ik open steeds de files in de ab+ mode. als de c code de file volledig heeft gelezen zal deze verwijderd worden.

ik dacht al om het op te lossen dat ik in de c code eerst een lock file aanmaak en verwijder als de c code gedaan heeft. wanneer deze lock file aanwezig dat de python code in een while lus terecht komt totdat deze niet meer bestaat. de race conditions zijn verminderd maar helaas nog niet vermeden.

hoe zouden jullie dit op een simpele manier oplossen?
ps: het voor bepaalde doeleinde nodig dat ik gebruik maak van de koppeling met binary files.

bram

beste,

use named pipe, , unix inter-process communication (ipc)


raspberrypi



Comments