From: Ethan G. <ega...@us...> - 2008-10-15 17:45:01
|
Update of /cvsroot/nagios/nagios/base In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2112/base Modified Files: utils.c Log Message: Fix for high cpu utilization on OS X Index: utils.c =================================================================== RCS file: /cvsroot/nagios/nagios/base/utils.c,v retrieving revision 1.228 retrieving revision 1.229 diff -C2 -d -r1.228 -r1.229 *** utils.c 15 Oct 2008 15:05:05 -0000 1.228 --- utils.c 15 Oct 2008 17:43:55 -0000 1.229 *************** *** 4,8 **** * * Copyright (c) 1999-2008 Ethan Galstad (na...@na...) ! * Last Modified: 07-16-2008 * * License: --- 4,8 ---- * * Copyright (c) 1999-2008 Ethan Galstad (na...@na...) ! * Last Modified: 10-15-2008 * * License: *************** *** 3829,3832 **** --- 3829,3834 ---- /* wait for data to arrive */ /* select seems to not work, so we have to use poll instead */ + /* 10-15-08 EG check into implementing William's patch @ http://blog.netways.de/2008/08/15/nagios-unter-mac-os-x-installieren/ */ + /* 10-15-08 EG poll() seems broken on OSX - see Jonathan's patch a few lines down */ pfd.fd=command_file_fd; pfd.events=POLLIN; *************** *** 3876,3879 **** --- 3878,3890 ---- #endif + /* 10-15-08 Fix for OS X by Jonathan Saggau - see http://www.jonathansaggau.com/blog/2008/09/using_shark_and_custom_dtrace.html */ + /* Not sure if this would have negative effects on other OSes... */ + if(buffer_items==0){ + /* pause a bit so OS X doesn't go nuts with CPU overload */ + tv.tv_sec=0; + tv.tv_usec=500; + select(0,NULL,NULL,NULL,&tv); + } + /* process all commands in the file (named pipe) if there's some space in the buffer */ if(buffer_items<external_command_buffer_slots){ |