Kodardilemma, ircbot [C++]
Jag arbetar på en ircbot med pluginstöd. Jag har kommit relativt långt måste jag säga. Den har varit igång några dagar på prov nu. Men för att kunna skriva alla plugins som jag skulle vilja så skulle jag behöva ha möjligheten att sätta en timer ifrån ett script som gör att en vald funktion ifrån scriptet anropas när timern är klar. Som det är nu använder jag "blocking" socket-funktioner eller vad det nu kallas, d.v.s. jag väntar tills jag får något från ircnätet. Programmet är alltså helt låst så länge det inte tar emot någon data, vilket är bra med tanke på att det inte utnyttjar någon processorkraft då. Det är dock inte lika bra om jag vill implementera timers, eftersom jag kanske missar en tid med någon/några minuter i värsta fall. Som jag ser det har jag 2 val.
1. Stanna inte och vänta på data från nätet. Då skulle jag kunna ha någon ifsats som kollar om tiden matchar någon begärd timer från ett script. Dock skulle det ju innebära att programmet är fullt aktivt konstant, vilket inte är speciellt bra.
2. Använda någon os-funktion för att sätta en timer och en callback-funktion eller liknande (har inte tittat på det så mycket). Detta skulle ju vara en bra lösning på problemet, dock antar jag att jag får hålla på med mutexar och liknande vilket jag inte är så hemma på. En annan sak som inte är så bra är att det blir plattformsberoende. Tanken är att jag ska porta boten till andra plattformar också så småningom, även om jag utvecklar den på Windows XP för tillfället.
Så, om någon har något annat förslag än de två jag kan komma på så är jag idel öra, annars vill jag gärna ha lite feedback på mitt resonemang så att jag kan bestämma mig.
Tack!