summaryrefslogtreecommitdiff
path: root/src/KqueueEventPoll.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 07:33:43 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 07:33:43 +0000
commitbc98e39fe5ed30c03ba3af36f46f74e10f03e635 (patch)
tree15b13a4dd63c0f5a3892c80aba7d0a4d72da65f4 /src/KqueueEventPoll.cc
parentbcf4593bda20504f026e359413f226519cbb8d37 (diff)
2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
To match the behavior of friend operator functions in SharedHandle.h to std::tr1::shared_ptr, we intentionally broke these functions and modified code so that our code does not depend on old behavior. * src/AbstractCommand.cc * src/DHTAbstractNodeLookupTask.h * src/DHTBucket.cc * src/DHTMessageReceiver.cc * src/DHTNodeLookupEntry.cc * src/DHTRoutingTable.cc * src/DefaultBtRequestFactory.cc * src/DefaultPeerStorage.cc * src/DefaultPieceStorage.cc * src/DownloadContext.cc * src/EpollEventPoll.cc * src/Event.h * src/HttpConnection.cc * src/KqueueEventPoll.cc * src/MultiDiskAdaptor.cc * src/PeerAbstractCommand.cc * src/PieceStatMan.cc * src/PollEventPoll.cc * src/PortEventPoll.cc * src/SegmentMan.cc * src/SelectEventPoll.cc * src/SelectEventPoll.h * src/ServerStatMan.cc * src/SharedHandle.h * src/UnknownLengthPieceStorage.cc * src/a2functional.h * src/option_processing.cc * src/version_usage.cc * test/BNodeTest.cc * test/DHTAnnouncePeerMessageTest.cc * test/DHTBucketTest.cc * test/DHTFindNodeMessageTest.cc * test/DHTGetPeersMessageTest.cc * test/DHTIDCloserTest.cc * test/DHTMessageFactoryImplTest.cc * test/DHTPingMessageTest.cc * test/DefaultBtRequestFactoryTest.cc * test/DefaultPeerStorageTest.cc * test/SequentialPickerTest.cc * test/SingletonHolderTest.cc
Diffstat (limited to 'src/KqueueEventPoll.cc')
-rw-r--r--src/KqueueEventPoll.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/KqueueEventPoll.cc b/src/KqueueEventPoll.cc
index be4b7a5a..dfa500b4 100644
--- a/src/KqueueEventPoll.cc
+++ b/src/KqueueEventPoll.cc
@@ -170,12 +170,13 @@ bool KqueueEventPoll::addEvents
{
SharedHandle<KSocketEntry> socketEntry(new KSocketEntry(socket));
std::deque<SharedHandle<KSocketEntry> >::iterator i =
- std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry);
+ std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry,
+ DerefLess<SharedHandle<KSocketEntry> >());
int r = 0;
struct timespec zeroTimeout = { 0, 0 };
struct kevent changelist[2];
size_t n;
- if(i != socketEntries_.end() && (*i) == socketEntry) {
+ if(i != socketEntries_.end() && *(*i) == *socketEntry) {
event.addSelf(*i);
n = (*i)->getEvents(changelist);
} else {
@@ -221,8 +222,9 @@ bool KqueueEventPoll::deleteEvents(sock_t socket,
{
SharedHandle<KSocketEntry> socketEntry(new KSocketEntry(socket));
std::deque<SharedHandle<KSocketEntry> >::iterator i =
- std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry);
- if(i != socketEntries_.end() && (*i) == socketEntry) {
+ std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry,
+ DerefLess<SharedHandle<KSocketEntry> >());
+ if(i != socketEntries_.end() && *(*i) == *socketEntry) {
event.removeSelf(*i);
int r = 0;
struct timespec zeroTimeout = { 0, 0 };
@@ -272,7 +274,8 @@ bool KqueueEventPoll::addNameResolver
SharedHandle<KAsyncNameResolverEntry> entry
(new KAsyncNameResolverEntry(resolver, command));
std::deque<SharedHandle<KAsyncNameResolverEntry> >::iterator itr =
- std::find(nameResolverEntries_.begin(), nameResolverEntries_.end(), entry);
+ std::find_if(nameResolverEntries_.begin(), nameResolverEntries_.end(),
+ derefEqual(entry));
if(itr == nameResolverEntries_.end()) {
nameResolverEntries_.push_back(entry);
entry->addSocketEvents(this);
@@ -288,7 +291,8 @@ bool KqueueEventPoll::deleteNameResolver
SharedHandle<KAsyncNameResolverEntry> entry
(new KAsyncNameResolverEntry(resolver, command));
std::deque<SharedHandle<KAsyncNameResolverEntry> >::iterator itr =
- std::find(nameResolverEntries_.begin(), nameResolverEntries_.end(), entry);
+ std::find_if(nameResolverEntries_.begin(), nameResolverEntries_.end(),
+ derefEqual(entry));
if(itr == nameResolverEntries_.end()) {
return false;
} else {