This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: [b18] Can't interrupt "sleep 30"


Francis Litterio wrote:
> Using b18, type
>
> 	sleep 30
>
> to bash, then type ^C to interrupt it.  Nothing happens, and after 30
> seconds elapses, bash prompts again.

Ok, it's my fault :-) While modifying signal support for B18 I forgot about 
sleep() and usleep() syscalls. Thank you for this bug report. The functions 
sleep() and usleep() in winsup/signal.cc must be the following one:

extern "C"
unsigned int
sleep (unsigned int seconds)
{
  syscall_printf ("sleep (%d);\n", seconds);
  WaitForSingleObject (u->signal_arrived, seconds * 1000);
  syscall_printf ("0 = sleep (%d)\n", seconds);
  return 0;
}

extern "C"
unsigned int
usleep (unsigned int useconds)
{
  syscall_printf ("usleep (%d)\n", useconds);
  WaitForSingleObject (u->signal_arrived, (useconds + 500) / 1000);
  syscall_printf ("0 = usleep (%d)\n", useconds);
  return 0;
}


--
Sergey Okhapkin
Moscow, Russia
Looking for a job.


-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]