<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sebastian/libevent, branch compilewarning</title>
<subtitle>Sebastian's libevent repository</subtitle>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/'/>
<entry>
<title>Fix a compile warning in event_reinit</title>
<updated>2012-01-31T18:00:24+00:00</updated>
<author>
<name>Sebastian Hahn</name>
<email>sebastian@torproject.org</email>
</author>
<published>2012-01-31T17:58:59+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=e4a56ed5272e40d282671a91f73e76a4161afeb5'/>
<id>e4a56ed5272e40d282671a91f73e76a4161afeb5</id>
<content type='text'>
Introduced in 272033efe575a9dc7ec6f123a96afba5c69ff1c6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduced in 272033efe575a9dc7ec6f123a96afba5c69ff1c6
</pre>
</div>
</content>
</entry>
<entry>
<title>Make test-changelist faster</title>
<updated>2012-01-27T20:10:28+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-27T20:10:28+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=7622d2659b2fc2d22ebf87be237ea590aee7191a'/>
<id>7622d2659b2fc2d22ebf87be237ea590aee7191a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Check changelist as part of checking representational integrity</title>
<updated>2012-01-27T19:39:18+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-27T19:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=39b3f38d7212a549357664bf441632ab0387d80a'/>
<id>39b3f38d7212a549357664bf441632ab0387d80a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Restore fast-path event_reinit() for slower backends</title>
<updated>2012-01-27T19:30:41+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-27T19:30:41+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=2c4b5de16a9b80fc564681018956f29077c28c9a'/>
<id>2c4b5de16a9b80fc564681018956f29077c28c9a</id>
<content type='text'>
We used to use the needs_reinit flag in struct eventop to indicate
whether an event backend had shared state across a fork(), and
therefore would require us to construct a new event backend.  But
when we realized that the signal notification fds and the thread
notification fds would always be shared across forks, we stopped
looking at it.

This patch restores the old behavior so that poll, select, and
win32select don't need to do a linear scan over all pending
fds/signals when they do a reinit.  Their life is hard enough
already.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We used to use the needs_reinit flag in struct eventop to indicate
whether an event backend had shared state across a fork(), and
therefore would require us to construct a new event backend.  But
when we realized that the signal notification fds and the thread
notification fds would always be shared across forks, we stopped
looking at it.

This patch restores the old behavior so that poll, select, and
win32select don't need to do a linear scan over all pending
fds/signals when they do a reinit.  Their life is hard enough
already.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make event_reinit() more robust and maintainable</title>
<updated>2012-01-27T18:54:05+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-27T18:54:05+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=272033efe575a9dc7ec6f123a96afba5c69ff1c6'/>
<id>272033efe575a9dc7ec6f123a96afba5c69ff1c6</id>
<content type='text'>
Previously, event_reinit required a bunch of really dubious hacks,
and violated a lot of abstraction barriers to mess around with lists
of internal events and "pretend" to re-add them.

The new (and fairly well commented!) implementation tries to be much
smarter, by isolating the changes as much as possible to the backend
state, and minimizing the amount of abstraction violations.

Specifically, we now use event_del() to remove events we want to
remove, rather than futzing around with queues in event_reinit().
To avoid bogus calls to evsel-&gt;del(), we temporarily replace evsel
with a null-object stub.

Also, we now push the responsibility for calling evsel-&gt;add() down
into the evmap code, so that we don't actually need to unlink and
re-link all of our events.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, event_reinit required a bunch of really dubious hacks,
and violated a lot of abstraction barriers to mess around with lists
of internal events and "pretend" to re-add them.

The new (and fairly well commented!) implementation tries to be much
smarter, by isolating the changes as much as possible to the backend
state, and minimizing the amount of abstraction violations.

Specifically, we now use event_del() to remove events we want to
remove, rather than futzing around with queues in event_reinit().
To avoid bogus calls to evsel-&gt;del(), we temporarily replace evsel
with a null-object stub.

Also, we now push the responsibility for calling evsel-&gt;add() down
into the evmap code, so that we don't actually need to unlink and
re-link all of our events.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/patches-2.0'</title>
<updated>2012-01-26T21:56:33+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-26T21:56:33+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=4b7baec668732e215f5f3533f2f74ccfad09a8af'/>
<id>4b7baec668732e215f5f3533f2f74ccfad09a8af</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Better workaround for Linux 3.2 edge-triggered epoll bug</title>
<updated>2012-01-26T20:04:24+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-26T20:04:24+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=9f9e259fdabbacff2ddbadda2784f91cd4ec94ce'/>
<id>9f9e259fdabbacff2ddbadda2784f91cd4ec94ce</id>
<content type='text'>
On further investigation, it appears that this problem is limited to
AF_UNIX sockets, so let's just do the test on AF_INET sockets.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On further investigation, it appears that this problem is limited to
AF_UNIX sockets, so let's just do the test on AF_INET sockets.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/patches-2.0'</title>
<updated>2012-01-24T22:18:52+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-24T22:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=2c6b3246fd9e3a3fa4f1a4b0126f0fc1e07d628c'/>
<id>2c6b3246fd9e3a3fa4f1a4b0126f0fc1e07d628c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Do a memberwise comparison of threading function tables</title>
<updated>2012-01-24T22:15:50+00:00</updated>
<author>
<name>Nate R</name>
<email>nate_r@example.com</email>
</author>
<published>2012-01-24T22:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=c94a5f2a2cce7b6751a95343e0d80b7d150add31'/>
<id>c94a5f2a2cce7b6751a95343e0d80b7d150add31</id>
<content type='text'>
Doing a memcmp risks comparing uninitialized padding bytes at the
end of the structure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Doing a memcmp risks comparing uninitialized padding bytes at the
end of the structure.
</pre>
</div>
</content>
</entry>
<entry>
<title>When including an -internal.h header outside the main tree, do so early</title>
<updated>2012-01-24T21:08:00+00:00</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2012-01-24T21:08:00+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.torproject.org/user/sebastian/libevent.git/commit/?id=95e2455cdbf840bdcf913f4ef59d0109babd3d6a'/>
<id>95e2455cdbf840bdcf913f4ef59d0109babd3d6a</id>
<content type='text'>
Some of our unit tests and sample code need functions and structures
defined in an -internal.h header.  But that can freak out OpenSolaris,
where stdio.h wants to define _FILE_OFFSET_BITS unless it's already
defined, and then evconfig-internal.h defines it.  Regular users
should never ever use our -internal.h headers, so the solution is
to make sure that if we're going to use them ourselves, we do so
before system headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some of our unit tests and sample code need functions and structures
defined in an -internal.h header.  But that can freak out OpenSolaris,
where stdio.h wants to define _FILE_OFFSET_BITS unless it's already
defined, and then evconfig-internal.h defines it.  Regular users
should never ever use our -internal.h headers, so the solution is
to make sure that if we're going to use them ourselves, we do so
before system headers.
</pre>
</div>
</content>
</entry>
</feed>
