<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tteras/strongswan/src/libstrongswan/threading/windows, branch master</title>
<subtitle>tteras' strongSwan tree
</subtitle>
<id>https://git-old.alpinelinux.org/user/tteras/strongswan/atom?h=master</id>
<link rel='self' href='https://git-old.alpinelinux.org/user/tteras/strongswan/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/'/>
<updated>2016-03-04T08:12:11Z</updated>
<entry>
<title>thread: Allow thread ID to be value returned by gettid()</title>
<updated>2016-03-04T08:12:11Z</updated>
<author>
<name>Thomas Egerer</name>
<email>thomas.egerer@secunet.com</email>
</author>
<published>2016-02-12T16:09:47Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=8ea4cb3e5d138e3545b853487401db50e639b3a7'/>
<id>urn:sha1:8ea4cb3e5d138e3545b853487401db50e639b3a7</id>
<content type='text'>
Signed-off-by: Thomas Egerer &lt;thomas.egerer@secunet.com&gt;
</content>
</entry>
<entry>
<title>thread: Add a function to pop and call all registered cleanup handlers</title>
<updated>2015-04-15T12:38:43Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2015-04-14T06:59:01Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=d36b30803e2ca313339b44e181efa46c925b51b8'/>
<id>urn:sha1:d36b30803e2ca313339b44e181efa46c925b51b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>threading: Support rwlock try_write_lock() on Windows</title>
<updated>2014-10-30T09:45:24Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-10-22T09:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=61e29aca0dcc3e706a97d3b95d988b65723535a5'/>
<id>urn:sha1:61e29aca0dcc3e706a97d3b95d988b65723535a5</id>
<content type='text'>
We explicitly avoided TryAcquireSRWLockExclusive() because of crashes. This
issue was caused by a MinGW-w64 bug (mingw-w64 fix 46f77afc). Using a newer
toolchain works fine.

While try_write_lock() obviously can fail, not supporting it is not really an
option, as some algorithms depend on occasionally successful calls. Certificate
caching in the certificate manager and the cred_set cache rely on successful
try_write_lock()ing.
</content>
</entry>
<entry>
<title>windows: Remove useless assignment in put_thread()</title>
<updated>2014-07-02T10:12:05Z</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2014-07-02T09:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=32a262e7a140cb43e83276827fd3e10964503969'/>
<id>urn:sha1:32a262e7a140cb43e83276827fd3e10964503969</id>
<content type='text'>
</content>
</entry>
<entry>
<title>windows: Fix parameter name in Doxygen comment</title>
<updated>2014-06-30T11:16:17Z</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2014-06-24T14:14:38Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=e35116990032088505dfa5508792c052d3eac551'/>
<id>urn:sha1:e35116990032088505dfa5508792c052d3eac551</id>
<content type='text'>
</content>
</entry>
<entry>
<title>thread-value: Defer cleanup handling to thread termination on Windows</title>
<updated>2014-06-17T13:19:40Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-06-11T12:24:22Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=23750961d5b9052ddfe6d4746435e84ca0c87a10'/>
<id>urn:sha1:23750961d5b9052ddfe6d4746435e84ca0c87a10</id>
<content type='text'>
Instead of cleaning up all thread-values during destruction, cleanup handler
is invoked when a thread detaches. Thread detaching is cough using the Windows
DllMain() entry point, and allows us to basically revert 204098a7.

Using this mechanism, we make sure that the cleanup handler is invoked by the
the correct thread. Further, this mechanism works for externally-spawned
threads which run outside of our thread_cb() routine, and works more efficiently
with short-running threads.
</content>
</entry>
<entry>
<title>windows: Use WINAPI call convention for Windows API callbacks</title>
<updated>2014-06-06T14:28:28Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-06-05T11:10:43Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=cab59c73fc616c23bf510dd875363da08ce1850c'/>
<id>urn:sha1:cab59c73fc616c23bf510dd875363da08ce1850c</id>
<content type='text'>
For x86_64 it does not actually matter, but for i686 builds the call convention
is different with WINAPI.
</content>
</entry>
<entry>
<title>windows: Include for Vista instead of defining CondVar/SRWLock functions ourself</title>
<updated>2014-06-04T13:53:05Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-01-02T17:14:51Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=89e46c41f1e6e818979a9aab07447a807629f179'/>
<id>urn:sha1:89e46c41f1e6e818979a9aab07447a807629f179</id>
<content type='text'>
</content>
</entry>
<entry>
<title>thread-value: Immediately cleanup all Windows TLS values on destroy</title>
<updated>2014-06-04T13:53:02Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2013-12-06T10:33:40Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=204098a7520205b4534044b3840f68cb1a6e20ae'/>
<id>urn:sha1:204098a7520205b4534044b3840f68cb1a6e20ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>windows: Prevent queueing of multiple thread cancel APCs</title>
<updated>2014-06-04T13:53:01Z</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-05-28T15:34:48Z</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=9dec601f30ca6558c1b070de1d8e1a2a43eaf49e'/>
<id>urn:sha1:9dec601f30ca6558c1b070de1d8e1a2a43eaf49e</id>
<content type='text'>
This avoids any races during cleanup invocation if multiple cancel() requests
come in.
</content>
</entry>
</feed>
