Browse Source

Move lock out of the loop in PollService::process()

Paul-Louis Ageneau 2 years ago
parent
commit
d062ff38b6
1 changed files with 1 additions and 2 deletions
  1. 1 2
      src/impl/pollservice.cpp

+ 1 - 2
src/impl/pollservice.cpp

@@ -105,13 +105,12 @@ void PollService::prepare(std::vector<struct pollfd> &pfds, optional<clock::time
 }
 
 void PollService::process(std::vector<struct pollfd> &pfds) {
+	std::unique_lock lock(mMutex);
 	auto it = pfds.begin();
 	if (it != pfds.end()) {
-		std::unique_lock lock(mMutex);
 		mInterrupter->process(*it++);
 	}
 	while (it != pfds.end()) {
-		std::unique_lock lock(mMutex);
 		socket_t sock = it->fd;
 		auto jt = mSocks->find(sock);
 		if (jt != mSocks->end()) {