Problem with select(2) in single threaded runtime.

Herbert Valerio Riedel hvriedel at
Tue Nov 4 08:34:48 UTC 2014

On 2014-11-04 at 07:42:11 +0100, Merijn Verstraaten wrote:
> Worse, it appears the maximum size of time_t is unrelated to the
> maximum value accepted by select(2). 

Fwiw, I found the following on

| Implementations may place limitations on the maximum timeout interval
| supported. All implementations shall support a maximum timeout interval
| of at least 31 days. If the timeout argument specifies a timeout
| interval greater than the implementation-defined maximum value, the
| maximum value shall be used as the actual timeout value. Implementations
| may also place limitations on the granularity of timeout intervals. If
| the requested timeout interval requires a finer granularity than the
| implementation supports, the actual timeout interval shall be rounded up
| to the next supported value.

So I'm a bit surprised you get an EINVAL instead of the timeout being
capped to the implementation's max supported value.

Was the passed `timeval` structure valid? I.e. is the tv_usec value inside
the [0,1e6-1] range? and was tv_sec>=0 ?

More information about the ghc-devs mailing list