forked from enlightenment/efl
evas generic loaders fix timeout on windows where no alarm exists
this uses a thread - to do the same. based on code vtorri put in T3790 this should fix T3790
This commit is contained in:
parent
b1f2c335e6
commit
e8c396a6e2
|
@ -1,5 +1,27 @@
|
|||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#ifdef _WIN32
|
||||
# include <stdio.h>
|
||||
# include <windows.h>
|
||||
# include <process.h>
|
||||
|
||||
unsigned int
|
||||
_timeout(void *arg)
|
||||
{
|
||||
int s (int)arg;
|
||||
Sleep(s * 1000);
|
||||
_Exit(-1);
|
||||
_endthreadex(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
timeout_init(int seconds)
|
||||
{
|
||||
unsigned int id;
|
||||
_beginthreadex( NULL, 0, _timeout, (void *)seconds, 0, &id);
|
||||
}
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# include <signal.h>
|
||||
|
||||
static void
|
||||
_timeout(int val)
|
||||
|
@ -14,3 +36,4 @@ timeout_init(int seconds)
|
|||
signal(SIGALRM, _timeout);
|
||||
alarm(seconds);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue