mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 23:16:14 +01:00
g_usleep: round up the next millisecond on Windows. See #1371
The timer tests expect that a small value for sleep does not result in no sleep at all. Round up to the next millisecond to bring it more in line with other platforms. This fixes the glib/timer tests. This makes the 'threadtests' time out since that uses small usleeps a lot and until now didn't wait at all, but now always waits a msec. Reduce the amount of tests done on Windows to get the runtime down to something reasonable again. https://bugzilla.gnome.org/show_bug.cgi?id=795569
This commit is contained in:
parent
ab116c3111
commit
01c02ac08b
@ -251,7 +251,8 @@ void
|
|||||||
g_usleep (gulong microseconds)
|
g_usleep (gulong microseconds)
|
||||||
{
|
{
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
Sleep (microseconds / 1000);
|
/* Round up to the next millisecond */
|
||||||
|
Sleep (microseconds ? (1 + (microseconds - 1) / 1000) : 0);
|
||||||
#else
|
#else
|
||||||
struct timespec request, remaining;
|
struct timespec request, remaining;
|
||||||
request.tv_sec = microseconds / G_USEC_PER_SEC;
|
request.tv_sec = microseconds / G_USEC_PER_SEC;
|
||||||
|
@ -247,6 +247,12 @@ test_threaded_weak_ref (void)
|
|||||||
else
|
else
|
||||||
n = NUM_COUNTER_INCREMENTS / 20;
|
n = NUM_COUNTER_INCREMENTS / 20;
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
/* On Windows usleep has millisecond resolution and gets rounded up
|
||||||
|
* leading to the test running for a long time. */
|
||||||
|
n /= 10;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
UnrefInThreadData data;
|
UnrefInThreadData data;
|
||||||
|
Loading…
Reference in New Issue
Block a user