GitHub user hessu opened a pull request:
https://github.com/apache/trafficserver/pull/28
TS-2271: Support plugins which use libraries which create threads and use
OpenSSL
This pair of patches implements changes to support TS-2271
(https://issues.apache.org/jira/browse/TS-2271).
* OpenSSL init + callbacks are changed to use raw pthread functions, so
that they work from threads which were not created using the ATS thread API
functions.
* TSHttpTxnReenable does not segfault when it's called from an unexpected
thread (not created by ATS thread API functions).
These changes are helpful in case a plugin utilizes a third-party library,
which in turn creates pthreads on its own, and ends up calling
TSHttpTxnReenable from a thread created by the third-party library.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/hessu/trafficserver TS-2271-threaded-plugins
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/28.patch
----
commit d414fa2f824687c256270a161feba9c45c616f20
Author: Heikki Hannikainen <[email protected]>
Date: 2013-12-30T10:29:52Z
TS-2271: Change the OpenSSL init + callbacks to use raw pthread functions
commit 0c490352b72d7a0de85b31df15bfe33fd272fd0f
Author: Heikki Hannikainen <[email protected]>
Date: 2013-12-30T15:42:23Z
TS-2271: Let TSHttpTxnReenable work gracefully when it's called from an
unexpected thread (this_ethread() returns NULL).
----