CDriver does not check result of pthread create (see https://github.com/mongodb/mongo-c-driver/blob/1.3.5/src/mongoc/mongoc-topology.c#L863).
When it fails to create new thread and return for example EAGAIN (memory exhausted, ulimits can cause this for example) the behaviour may be incorrect.