Zdravím, snažím se napsat jeden program, multiplatformní, využívající SDL. Na kritickou sekci jsem zkoušel jak mutexy z knihovny pthread, tak z SDL. Problém nastává, pokud program spustím pod windows. Na Linuxu a Mac OS X se to chová podle očekávání, na Windows spadne. Pokud použiju mutexy z SDL, tedy:
SDL_mutex *mut;
if ( ( mut=SDL_CreateMutex() ) == NULL )
{
fprintf(stderr, "Couldn't create mutex\n");
exit(-1);
}
if( SDL_mutexP(mut) == -1 )
{
fprintf(stderr, "Couldn't lock mutex\n");
exit(-1);
}
program se ukončí a hlásí, že nelze zámek zamknout.
Otázka zní: Jak zamykat kritické sekce, nějak univerzálně? Případně, jak je možné, že se zámek nezamkne?
Díky moc za rady!