While the SSL support is mainly thread safe the initialization of the SSL library is special. The library should not be initialized per thread but should be initialized per program - before any threads are created. I therefore recommend that you do a "use IO::Socket::SSL" in your main code which will take care of initializing the SSL library in the main thread so that it will not attempt initialization in the other threads too.