summaryrefslogtreecommitdiffstats
path: root/base/message_pump_libevent.cc
Commit message (Collapse)AuthorAgeFilesLines
* Explicitly #include <unistd.h> to avoid a compile errorphajdan.jr@chromium.org2012-05-141-1/+2
| | | | | | | | | | | reported in https://bugs.gentoo.org/show_bug.cgi?id=415601 BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10399002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136884 0039d316-1c4b-4281-b951-d872f2087c98
* mac: use the preprocessor for the mac headerensonic@google.com2011-12-061-0/+3
| | | | | | | | | | | | The mac header is using conditional compilation to become neutral for other platforms. Unfortunately it won't work for all gyp backends, as the gyp file is removing the header from the sources for non mac platforms. Better use conditionals in the few places where we use it. That also spares us to explain the hack. Review URL: http://codereview.chromium.org/8822010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113202 0039d316-1c4b-4281-b951-d872f2087c98
* Expose the sandbox related code through the content API. I did a bit of ↵jam@chromium.org2011-10-291-1/+6
| | | | | | | | | | | | | cleanup while I was doing this. -got rid of SandboxInitWrapper, since I didn't see a need to expose given that we can just expose sandbox::SandboxInterfaceInfo -got rid of the duplicated code to initialize the broker -since I made MainFunctionParams only have the sandbox struct on Windows, I also made the mac specific auto release pool behind an ifdef as well. It seemed odd to make something so mac specific compile on all platforms to save some #ifdefs. BUG=98716 Review URL: http://codereview.chromium.org/8414020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107863 0039d316-1c4b-4281-b951-d872f2087c98
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-261-2/+2
| | | | | | | | | | | [ Reland of 107042 http://codereview.chromium.org/8368009 ] I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8341026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107434 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107042 - Replace most LOG/CHECK statements with DLOG/DCHECK ↵brettw@chromium.org2011-10-251-2/+2
| | | | | | | | | | | | | | statements in base. I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/8351025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107051 0039d316-1c4b-4281-b951-d872f2087c98
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-251-2/+2
| | | | | | | | | I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107042 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup for r93201.wtc@chromium.org2011-07-211-1/+3
| | | | | | | | | | | | | | | | The initializer for watcher_ in the FileDescriptorWatcher constructor was deleted accidentally. USE_SYSTEM_LIBEVENT is defined by the build system, so we don't need to include "build/build_config.h". R=willchan@chromium.org BUG=88134 TEST=MessagePumpLibeventTest.* Review URL: http://codereview.chromium.org/7473017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93460 0039d316-1c4b-4281-b951-d872f2087c98
* Handle object deletion in FileDescriptorWatcher callback.willchan@chromium.org2011-07-201-4/+12
| | | | | | | | | | BUG=88134 TEST=MessagePumpLibeventTest.* Review URL: http://codereview.chromium.org/7398036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93201 0039d316-1c4b-4281-b951-d872f2087c98
* Change MessagePumpLibevent::Run to process I/O events before doing idlewtc@chromium.org2011-07-011-0/+9
| | | | | | | | | | | | work. R=jar@chromium.org,mark@chromium.org,rvargas@chromium.org BUG=87707 TEST=covered by existing unit tests Review URL: http://codereview.chromium.org/7291010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91252 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 91137 - Change MessagePumpLibevent::Run to process I/O events before ↵torne@chromium.org2011-06-301-6/+0
| | | | | | | | | | | | | | | | | doing idle work. R=agl@chromium.org,jar@chromium.org,mark@chromium.org,rvargas@chromium.org BUG=87707 TEST=covered by existing unit tests Review URL: http://codereview.chromium.org/7262011 TBR=wtc@chromium.org Review URL: http://codereview.chromium.org/7210028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91141 0039d316-1c4b-4281-b951-d872f2087c98
* Change MessagePumpLibevent::Run to process I/O events before doing idlewtc@chromium.org2011-06-301-0/+6
| | | | | | | | | | | | work. R=agl@chromium.org,jar@chromium.org,mark@chromium.org,rvargas@chromium.org BUG=87707 TEST=covered by existing unit tests Review URL: http://codereview.chromium.org/7262011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91137 0039d316-1c4b-4281-b951-d872f2087c98
* Add thread check to WatchFileDescriptor.dmaclach@chromium.org2011-05-131-0/+3
| | | | | | | | | | | | | I had a case where I was accidentally calling WatchFileDescriptor from another thread, and it took me a while to debug why I was having problems. This check would've immediately caught my error for me. BUG=none TEST=build Review URL: http://codereview.chromium.org/6410035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85271 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* More DCHECK() updates. A mixture of _EQ and _GE.mhm@chromium.org2011-03-011-1/+1
| | | | | | | | Bug=58409 Review URL: http://codereview.chromium.org/6469070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76343 0039d316-1c4b-4281-b951-d872f2087c98
* Order function definitions in base/ according to the header.erg@google.com2011-01-111-74/+76
| | | | | | | | | BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6085015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70975 0039d316-1c4b-4281-b951-d872f2087c98
* Switch to using TimeTicks rather than Time in message loopsjar@chromium.org2010-11-061-3/+4
| | | | | | | | | | Switch to using TimeTicks rather than Time so that we are not dependent on changes in the system clock. r=mbelshe,darin Review URL: http://codereview.chromium.org/3884001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65322 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_nsdisable_screen_update from base to app/macbrettw@chromium.org2010-10-181-3/+3
| | | | | | | | | | | Move scoped_aedesc from base to base/mac Use namespace and proper Google-style class naming. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3828009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62904 0039d316-1c4b-4281-b951-d872f2087c98
* Clang: Do not ignore result of HANDLE_EINTR.thakis@chromium.org2010-06-231-4/+8
| | | | | | Review URL: http://codereview.chromium.org/2805026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50556 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49982 - patchthakis@chromium.org2010-06-161-8/+4
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2825006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50002 0039d316-1c4b-4281-b951-d872f2087c98
* patchthakis@chromium.org2010-06-161-4/+8
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49982 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r49188.willchan@chromium.org2010-06-091-9/+50
| | | | | | | | It was reverted due to breaking a valgrind test which has since been disabled. Review URL: http://codereview.chromium.org/2763004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49320 0039d316-1c4b-4281-b951-d872f2087c98
* Rebaseline tests whose expectations were changed by r55714.hamaji@chromium.org2010-06-091-50/+9
| | | | | | | | | | | | The patch removed extra paddings inside buttons. http://trac.webkit.org/changeset/55714 BUG=1437 TEST=none Review URL: http://codereview.chromium.org/789003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49225 0039d316-1c4b-4281-b951-d872f2087c98
* Jankometer: Generalize the code more. Add better support for monitoring IO ↵willchan@chromium.org2010-06-081-9/+50
| | | | | | | | | | | | | thread. Previously, the Jankometer only monitored windows messages on the UI thread (or gtk events). I've added observers for tasks and IO events. This lets us monitor all events on UI & IO threads (UI messages, all Tasks, and IO events). Replaces the JankObserver with a UIJankObserver and an IOJankObserver. Shares common code in JankObserverHelper. The JankObserverHelper and JankWatchdog are generic enough that they can probably move out to chrome/common and be reused by the renderer. Review URL: http://codereview.chromium.org/2098020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49188 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing AutoReset to be a template.gspencer@chromium.org2010-06-011-1/+1
| | | | | | | | | | | I've run into a couple of times this week when I needed one of these, for two different types besides bool. Time to fix the TODO. TEST=trybots FTW, and built locally. BUG=none Review URL: http://codereview.chromium.org/2394001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48644 0039d316-1c4b-4281-b951-d872f2087c98
* Allow using system libevent instead of the bundled one.phajdan.jr@chromium.org2010-01-071-0/+4
| | | | | | | | | | | Patch by Bernard Cafarelli <voyageur@gentoo.org> TEST=none BUG=22140 Review URL: http://codereview.chromium.org/524061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35711 0039d316-1c4b-4281-b951-d872f2087c98
* Fix DCHECK that thinks fd = 0 is invalid.thestig@chromium.org2009-12-031-1/+1
| | | | | | | | BUG=25762 TEST=none Review URL: http://codereview.chromium.org/466023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33725 0039d316-1c4b-4281-b951-d872f2087c98
* Use AutoReset (formerly ScopedBool) where possible.pkasting@chromium.org2009-11-201-5/+3
| | | | | | | | | | This frequently saves a tiny bit of code, but even when it doesn't I think it's more future-proof (less error-prone). BUG=none TEST=none Review URL: http://codereview.chromium.org/399096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32708 0039d316-1c4b-4281-b951-d872f2087c98
* Cancel unused timeout events. Without this change they candkegel@google.com2009-11-061-1/+14
| | | | | | | | | | | | | | accumulate for a while, wasting memory and causing unneeded wakeups. BUG=25641 TEST=green valgrind or heapchecker on net_unittests Previously reviewed as http://codereview.chromium.org/370005/ TBR=timurrrr Review URL: http://codereview.chromium.org/372033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31306 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify failure codepaths of MessagePumpLibevent::WatchFileDescriptor()jeremy@chromium.org2009-09-241-21/+8
| | | | | | | | event_del is now called once if we reuse an event so there's no need to call it multiple times for each failure mode. Review URL: http://codereview.chromium.org/235007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27107 0039d316-1c4b-4281-b951-d872f2087c98
* IPC & LibEvent fixjeremy@chromium.org2009-09-231-0/+17
| | | | | | | | | | | * Allow IPC::Listeners to send a message on OnChannelConnected. * Fix a bug in MessagePumpLibevent::WatchFileDescriptor causing a read-after-free. BUG=22451 Review URL: http://codereview.chromium.org/209061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26946 0039d316-1c4b-4281-b951-d872f2087c98
* POSIX: Add a macro for handling EINTR.agl@chromium.org2009-05-011-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On POSIX systems, system calls can be interrupted by signals. In this case, they'll return EINTR, indicating that the system call needs to be restarted. (The situation is a little more complicated than this with SA_RESTART, but you can read man 7 signal if you like.) The short of it is that you need to catch EINTR and restart the call for these system calls: * read, readv, write, writev, ioctl * open() when dealing with a fifo * wait* * Anything socket based (send*, recv*, connect, accept etc) * flock and lock control with fcntl * mq_ functions which can block * futex * sem_wait (and timed wait) * pause, sigsuspend, sigtimedwait, sigwaitinfo * poll, epoll_wait, select and 'p' versions of the same * msgrcv, msgsnd, semop, semtimedop * close (although, on Linux, EINTR won't happen here) * any sleep functions (careful, you need to handle this are restart with different arguments) We've been a little sloppy with this until now. This patch adds a macro for dealing with this and corrects every case of these system calls (that I found). The macro is HANDLE_EINTR in base/eintr_wrapper.h. It's safe to include on Windows and is a no-op there. On POSIX, it uses GCC magic to return the correct type based on the expression and restarts the system call if it throws EINTR. And you can use it like: HANDLE_EINTR(close(fd)); Or: ssize_t bytes_read = HANDLE_EINTR(read(fd, buffer, len)); *BEWARE* that it will evaluate the argument multiple times, so this is not safe: HANDLE_EINTR(close(FireMissiles())); http://groups.google.com/group/chromium-dev/browse_thread/thread/41a35b2a457d73a0 http://codereview.chromium.org/100225 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15102 0039d316-1c4b-4281-b951-d872f2087c98
* StopWatchingFileDescriptor needs to free struct event.dkegel@google.com2009-04-221-9/+32
| | | | | | | | | | | Also, there's no point in using scoped_ptr for event_ anymore, so removed that. Should fix http://crbug.com/10503 "Crash in network layer" Review URL: http://codereview.chromium.org/87045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14233 0039d316-1c4b-4281-b951-d872f2087c98
* Minor DCHECK cleanups in libevent.willchan@chromium.org2009-03-171-2/+3
| | | | | | | | DCHECK=>DCHECK_EQ where possible. Change a DCHECK not to fire on write() returning -1 && errno==EAGAIN, since this happens normally under heavy load. Review URL: http://codereview.chromium.org/42295 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11919 0039d316-1c4b-4281-b951-d872f2087c98
* The dtor wasn't actually cleaning up the fds from the pipe, so close them downthomasvl@chromium.org2009-02-031-0/+4
| | | | | | | | during shutdown. (this w/ the zombies was what caused the bots to run out of fds) Review URL: http://codereview.chromium.org/20006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9066 0039d316-1c4b-4281-b951-d872f2087c98
* Followup for one missed review comment (sorting includes).thomasvl@chromium.org2009-01-201-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8329 0039d316-1c4b-4281-b951-d872f2087c98
* Added more logging in debug builds for some failure passes, hopefully thisthomasvl@chromium.org2009-01-201-3/+10
| | | | | | | | will let us figure out why we see so mainly unittest failures on the mac but never seem to be able to repro locally. Review URL: http://codereview.chromium.org/18378 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8316 0039d316-1c4b-4281-b951-d872f2087c98
* message_pump_libevent refactor:jeremy@chromium.org2008-12-151-57/+93
| | | | | | | | | | * Unify WatchSocket & WatchFileHandle. * Better encapsulate libevent. * Fix a bug with blocking writes in ipc_posix.cc Review URL: http://codereview.chromium.org/13757 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7010 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 6911.ojan@google.com2008-12-121-77/+57
| | | | | | Review URL: http://codereview.chromium.org/14068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6916 0039d316-1c4b-4281-b951-d872f2087c98
* message_pump_libevent refactor:jeremy@chromium.org2008-12-121-57/+77
| | | | | | | | | | * Unify WatchSocket & WatchFileHandle. * Better encapsulate libevent. * Fix a bug with blocking writes in ipc_posix.cc Review URL: http://codereview.chromium.org/13757 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6911 0039d316-1c4b-4281-b951-d872f2087c98
* Add FD watching support to message_pump_libevent.jeremy@chromium.org2008-12-081-4/+39
| | | | | | | | This CL goes along the same lines as the WatchSocket code, but we really need better encapsulation for this class in generel. Review URL: http://codereview.chromium.org/13129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6513 0039d316-1c4b-4281-b951-d872f2087c98
* Move Time, TimeDelta and TimeTicks into namespace base.dsh@google.com2008-10-271-1/+0
| | | | | | Review URL: http://codereview.chromium.org/7995 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4022 0039d316-1c4b-4281-b951-d872f2087c98
* Provide autorelease pool management on the Mac in all types of message pumps.mark@chromium.org2008-09-251-2/+5
| | | | | | | Fix a few unit tests to use autorelease pools as needed. Review URL: http://codereview.chromium.org/3805 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2603 0039d316-1c4b-4281-b951-d872f2087c98
* Use libevent, second try. Changes this time:dkegel@google.com2008-09-181-0/+179
| | | | | | | | | - remove bogus include of base/completion_callback.h - add DEPS rules to allow including third_party/libevent Review URL: http://codereview.chromium.org/2964 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2371 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Make tcp_client_socket_unittest pass on Linux."evanm@google.com2008-09-181-179/+0
| | | | | | | This reverts commit d63170654d935f5a8ff6517bfacb60893f186a6b. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2347 0039d316-1c4b-4281-b951-d872f2087c98
* Make tcp_client_socket_unittest pass on Linux.dkegel@google.com2008-09-181-0/+179
Requires another changeset that puts libevent in third_party; I'll upload that next. This is not the final word; it makes too many syscalls per read. But it's a start. Review URL: http://codereview.chromium.org/3202 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2346 0039d316-1c4b-4281-b951-d872f2087c98