Are there any opinions on the Netscape Portable Runtime?
I am working on the Netscape Portable Runtime (NSPR), so my opinions are obviously biased. I’d like to provide some info to help you evaluate this product. First, NSPR is more than a thread library. It also includes functions that are tied to the thread subsystem, most notably I/O functions. I/O functions can block the caller, so they must know which thread library they are dealing with. The thread API in NSPR is very similar to pthreads. The synchronization objects are locks and condition variables. The NSPR thread API does not have suspend, resume, and terminate thread functions. It also does not have the equivalent of pthread_exit(). NSPR has thread interrupt, but not thread cancel. The absence of these functions in the API is by design. Also, condition variables are associated with locks when they are created, and condition notification must be done while holding the lock, i.e., no “naked” notifies. The implementation of NSPR is often merely a layer on top of the native thread libr