Hallo,
Op het moment ben ik bezig met een project om een library te schrijven in C. Deze library moet in een andere thread dan de main routine zijn werk doen. Ik stel me dan bijvoorbeeld voor dat via een init functie in de library de thread wordt aangemaakt waarbinnen de library zijn werk kan doen. Alle functies in the library moeten dan gewoon aangeroepen kunnen worden, maar moeten wel uitgevoerd worden in the thread van de library.
Als je bijvoorbeeld naar de pseude code kijkt dan wordt eerst de libInit aangeroepen. Deze zou de thread voor de library moeten aanmaken. Waarna de main een aantal functions van de library aanroept met de bijbehorende parameters. Deze moeten dan uitgevoerd worden maar dan wel in de thread van de library.
Nou ik dat ongeveer wel duidelijk is wat ik wil gaan doen. Alleen nu is mijn vraag hoe realiseer ik dat de aangeroepen functies van de library inderdaad in de thread van de library worden uitgevoerd.
Ook is mijn vraag eigenlijk een beetje of deze aanpak wel goed is. Als er andere goede ideeën zijn dan hoor/lees ik ze graag.
Pseudo code:
Op het moment ben ik bezig met een project om een library te schrijven in C. Deze library moet in een andere thread dan de main routine zijn werk doen. Ik stel me dan bijvoorbeeld voor dat via een init functie in de library de thread wordt aangemaakt waarbinnen de library zijn werk kan doen. Alle functies in the library moeten dan gewoon aangeroepen kunnen worden, maar moeten wel uitgevoerd worden in the thread van de library.
Als je bijvoorbeeld naar de pseude code kijkt dan wordt eerst de libInit aangeroepen. Deze zou de thread voor de library moeten aanmaken. Waarna de main een aantal functions van de library aanroept met de bijbehorende parameters. Deze moeten dan uitgevoerd worden maar dan wel in de thread van de library.
Nou ik dat ongeveer wel duidelijk is wat ik wil gaan doen. Alleen nu is mijn vraag hoe realiseer ik dat de aangeroepen functies van de library inderdaad in de thread van de library worden uitgevoerd.
Ook is mijn vraag eigenlijk een beetje of deze aanpak wel goed is. Als er andere goede ideeën zijn dan hoor/lees ik ze graag.
Pseudo code:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Int main(){ libInit(); //init van de lib er van uitgaande dat //het aanmaken van de thread gelukt is While(true){ Printf("testingOne\n"); LibfunctionOne(parameters); Printf("testingTwo\n"); LibfunctionTwo(parameters); } } |