X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_napms.c;h=417b3b4b4dbca84432a25320256ada585f0e9517;hp=f4975ad565bcaefa5f32c599a8e00671c07636f7;hb=feb958a7e85895ec23547b7b1a8daa03e85c7b9c;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/ncurses/tinfo/lib_napms.c b/ncurses/tinfo/lib_napms.c index f4975ad5..417b3b4b 100644 --- a/ncurses/tinfo/lib_napms.c +++ b/ncurses/tinfo/lib_napms.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -36,6 +36,8 @@ * * The routine napms. * + * (This file was originally written by Eric Raymond; however except for + * comments, none of the original code remains - T.Dickey). */ #include @@ -47,7 +49,7 @@ #endif #endif -MODULE_ID("$Id: lib_napms.c,v 1.13 2002/09/01 17:46:11 tom Exp $") +MODULE_ID("$Id: lib_napms.c,v 1.17 2008/05/03 21:34:13 tom Exp $") NCURSES_EXPORT(int) napms(int ms) @@ -56,13 +58,16 @@ napms(int ms) #if HAVE_NANOSLEEP { - struct timespec ts; - ts.tv_sec = ms / 1000; - ts.tv_nsec = (ms % 1000) * 1000000; - nanosleep(&ts, NULL); + struct timespec request, remaining; + request.tv_sec = ms / 1000; + request.tv_nsec = (ms % 1000) * 1000000; + while (nanosleep(&request, &remaining) == -1 + && errno == EINTR) { + request = remaining; + } } #else - _nc_timed_wait(0, ms, (int *) 0 EVENTLIST_2nd(0)); + _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0)); #endif returnCode(OK);