Ticket #850 (closed bug: fixed)
threaded RTS uses SIGALRM
| Reported by: | simonmar | Owned by: | simonmar |
|---|---|---|---|
| Priority: | normal | Milestone: | 6.6.1 |
| Component: | Runtime System | Version: | 6.4.2 |
| Keywords: | Cc: | ||
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | Difficulty: | Unknown | |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description
The threaded RTS uses SIGALRM for its timer signal, this is a bit naughty and could interfere with use of SIGALRM by the application. Also it can cause EINTR of system calls, which the application might not be prepared to handle. Some system calls can't be reliably restarted (eg. usleep()).
The single threaded RTS uses SIGVTALRM, but we can't use this in the multithreaded RTS because it ticks in CPU time, and our threads might be idle. Ideally we should be using the timer_*() family of functions, if supported.
Change History
Note: See
TracTickets for help on using
tickets.
