Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C++] Extraction operator cancellen

Pagina: 1
Acties:

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 19-11 14:21

LauPro

Prof Mierenneuke®

Topicstarter
Situatie:
C++:
1
a >> b;
Dit draait in een thread, hoe kan ik als ik die thread wil stoppen die extraction operator netjes annuleren? De code is als volgt:
C++:
1
2
3
4
5
6
istream a;
// -- init a
while(running) // deze raakt false als het programma moet stopen
    char b;
    a >> b;
}
Maar het programma blijft dus steken op die '>>', regel 5. Ik heb ook al geprobeerd een signal te sturen maar die komen bij de hoofdthread uit (die heeft er ook een handler voor).

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19-11 23:43

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kan niet. Maar als je toch enkele characters uit gaat lezen kun je net zo goed direct op de streambuf werken zodat je van diens method showmanyc() gebruik kunt maken om te zien hoeveel je non-blocking kunt lezen.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 19-11 14:21

LauPro

Prof Mierenneuke®

Topicstarter
Maar die thread mag best ergens blokken (met timeout), voor zover ik kan zien heeft iostream daar geen mogelijkheden voor?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19-11 23:43

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nope. Denk eraan dat puur standaard C++ het concept van threads ook niet kent.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 19-11 14:21

LauPro

Prof Mierenneuke®

Topicstarter
Ik was al teruggevallen op de oude vertrouwde poll(), wel een gemiste kans. Maargoed, misschien over een paar jaar.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!