On Thu, 6 Jan 2005, Jason Barnett wrote: > Symbulos Partners wrote: > > We know that. We understood all of that. > > > > Let me ask you this. Do you know what underlying libraries are associated > with the extensions you want to use (in your list below)? If you do then you > *should* be able to google for each library individually and see if that > library is thread safe. I have not gone through this exercise for myself, but > then again I don't need to either. ;) This would also be something that > would be a great benefit to share with the PHP community if you decide to > compile this list of thread-safe extensions. Keep in mind that it isn't that simple. If it was we would have done this long ago. Whether something is threadsafe depends on a lot of factors. The author of a certain library might tell you his library is threadsafe, but depending on how you compile it and which libc you are using it may or may not be threadsafe. So, while one person's library on his platform will work perfectly and be threadsafe, that exact same library on another platform may not be. Some examples of this are the c-client (imap) library and the postgresql library. Both may or may not be threadsafe depending on your platform and how you build them. Your crypt() libc call isn't threadsafe, for example. libpq used to call crypt() if you used the PASSWD() function in an SQL query. Now you might tick along for months without ever having 2 threads execute the SQL query that calls PASSWD() at exactly the same time, but then suddenly your lucky karma runs out and they do. You end up with 2 records in your database that are corrupted. The PostgreSQL guys fixed this, I think, but prior to this they were saying that libpq was threadsafe. The problem is always in code you don't control. They didn't control the libc crypt implementation and it bit them. I guarantee that there are dozens if not hundreds of examples of problems like this in just about every library, and probably a few left in PHP itself still. Unless someone hits a problem (which is likely) and recognizes it for what it is (which is unlikely) and informs the developers these tricky thread problems are never going to be fixed. I still content that humans are simply not smart enough to write threadsafe code for a largescale heterogenious project such as PHP with all the platforms and libraries that all have to interact perfectly. -Rasmus -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php