¿Por qué curl ignora CURLOPT_TIMEOUT_MS (pero respeta CURLOPT_TIMEOUT)?

Estoy utilizando curl para llamar a una API de servicio web. El servicio puede no responder, así que quiero establecer un tiempo de espera. Cuando uso CURLOPT_TIMEOUT, las cosas funcionan como se espera. Pero cuando uso CURLOPT_TIMEOUT_MS (tenga en cuenta la 'MS' durante milisegundos) el tiempo de espera no parece activarse en absoluto. php.net me dice que este último estaba disponible desde la versión 5.2.3 de PHP, y estoy usando 5.2.6.

¿Alguna idea de por qué esto está sucediendo?

Gracias.

Fragmento de código:

$c = curl_init();
curl_setopt( $c, CURLOPT_URL, $call );
curl_setopt( $c, CURLOPT_HTTPHEADER, $headers); 
curl_setopt( $c, CURLOPT_HEADER, false );
curl_setopt( $c, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $c, CURLOPT_TIMEOUT_MS, 100 ); 
curl_setopt( $c, CURLOPT_CONNECTIONTIMEOUT_MS, 100 ); 
$result = curl_exec($c);
curl_close($c);

Respuestas a la pregunta(1)

Su respuesta a la pregunta