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>
|
#ifdef _WIN32
|
||||||
#include <signal.h>
|
# 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
|
static void
|
||||||
_timeout(int val)
|
_timeout(int val)
|
||||||
|
@ -14,3 +36,4 @@ timeout_init(int seconds)
|
||||||
signal(SIGALRM, _timeout);
|
signal(SIGALRM, _timeout);
|
||||||
alarm(seconds);
|
alarm(seconds);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue