[maemo-commits] [maemo-commits] r14636 - in projects/haf/trunk/dbus/debian: . patches

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Oct 26 13:21:10 EEST 2007
Author: kihamala
Date: 2007-10-26 13:21:07 +0300 (Fri, 26 Oct 2007)
New Revision: 14636

Added:
   projects/haf/trunk/dbus/debian/patches/33-dbus-spawn-poll-fixes.patch
Modified:
   projects/haf/trunk/dbus/debian/changelog
Log:
poll fixes to dbus-spawn.c


Modified: projects/haf/trunk/dbus/debian/changelog
===================================================================
--- projects/haf/trunk/dbus/debian/changelog	2007-10-26 08:57:29 UTC (rev 14635)
+++ projects/haf/trunk/dbus/debian/changelog	2007-10-26 10:21:07 UTC (rev 14636)
@@ -19,6 +19,7 @@
   * Fixes to dbus_get_local_machine_id.
   * Add missing OOM checks to dbus-internals.c.
   * Add missing OOM check to main.c.
+  * Fix some _dbus_poll calls in dbus-spawn.c.
 
  -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Thu, 18 Oct 2007 11:21:11 +0300
 

Added: projects/haf/trunk/dbus/debian/patches/33-dbus-spawn-poll-fixes.patch
===================================================================
--- projects/haf/trunk/dbus/debian/patches/33-dbus-spawn-poll-fixes.patch	2007-10-26 08:57:29 UTC (rev 14635)
+++ projects/haf/trunk/dbus/debian/patches/33-dbus-spawn-poll-fixes.patch	2007-10-26 10:21:07 UTC (rev 14636)
@@ -0,0 +1,43 @@
+diff -pur dbus-1.0.2/dbus/dbus-spawn.c dbus-1.0.2.new/dbus/dbus-spawn.c
+--- dbus-1.0.2/dbus/dbus-spawn.c	2006-12-11 21:21:09.000000000 +0200
++++ dbus-1.0.2.new/dbus/dbus-spawn.c	2007-10-26 13:15:53.857260096 +0300
+@@ -551,9 +551,20 @@ babysitter_iteration (DBusBabysitter *si
+     {
+       int ret;
+ 
+-      ret = _dbus_poll (fds, i, 0);
++      do
++        {
++          ret = _dbus_poll (fds, i, 0);
++        }
++      while (ret < 0 && errno == EINTR);
++
+       if (ret == 0 && block)
+-        ret = _dbus_poll (fds, i, -1);
++        {
++          do
++            {
++              ret = _dbus_poll (fds, i, -1);
++            }
++          while (ret < 0 && errno == EINTR);
++        }
+       
+       if (ret > 0)
+         {
+@@ -990,7 +1001,15 @@ babysit (pid_t grandchild_pid,
+       pfds[1].events = _DBUS_POLLIN;
+       pfds[1].revents = 0;
+       
+-      _dbus_poll (pfds, _DBUS_N_ELEMENTS (pfds), -1);
++poll_again:
++      if (_dbus_poll (pfds, _DBUS_N_ELEMENTS (pfds), -1) < 0)
++        {
++          if (errno == EINTR)
++            goto poll_again;
++
++          _dbus_warn ("_dbus_poll() error: %s\n", strerror (errno));
++          exit (1);
++        }
+ 
+       if (pfds[0].revents != 0)
+         {


More information about the maemo-commits mailing list