Dima Kuznetsov has posted comments on this change.

Change subject: signals: Handle signals to non-main threads
......................................................................


Patch Set 10:

(6 comments)

http://gerrit.ovirt.org/#/c/29392/10/lib/vdsm/sigutils.py
File lib/vdsm/sigutils.py:

Line 74:     '''
Line 75:     This function acts like signal.pause(), it returns after a signal 
was
Line 76:     received and handled. Unlike signal.pause(), it will wake up even 
if other
Line 77:     thread caught the signal while this function was called.
Line 78:     A timeout can be specified to avoid waiting indefinitely.
> Need to document the timeout - Python uses both seconds and milliseconds fo
Done
Line 79: 
Line 80:     This function has to be called from the main thread.
Line 81:     '''
Line 82: 


Line 89: 
Line 90:     try:
Line 91:         events = _signal_poller.poll(timeout)
Line 92:         if events:
Line 93:             _empty_pipe(_signal_read_fd)
> Afaict, _empty_pipe() does not raise socket.error, so calling it misleading
Done
Line 94:     except select.error as e:
Line 95:         if e[0] == errno.EINTR:
Line 96:             # We need to clean up the pipe
Line 97:             _empty_pipe(_signal_read_fd)


Line 95:         if e[0] == errno.EINTR:
Line 96:             # We need to clean up the pipe
Line 97:             _empty_pipe(_signal_read_fd)
Line 98:         else:
Line 99:             logging.exception('Received error while waiting for 
signal')
> The check for events should be here:
You're right!
Line 100: 
Line 101: 
Line 102: def _empty_pipe(fd):
Line 103:     while True:


Line 107:         except OSError as e:
Line 108:             if e.errno != errno.EINTR:
Line 109:                 if e.errno != errno.EAGAIN:
Line 110:                     logging.exception('Received error while reading 
from pipe')
Line 111:                 break
> This is not clear. Lets make it simpler:
Done


http://gerrit.ovirt.org/#/c/29392/10/tests/sigutilsTests_child.py
File tests/sigutilsTests_child.py:

Line 1: #!/usr/bin/python -u
> Lawyers love GPL boilerplate on every code file.
Done
Line 2: import os
Line 3: import signal
Line 4: import subprocess
Line 5: import sys


Line 28: 
Line 29: 
Line 30: def test_signal_to_thread():
Line 31:     '''
Line 32:     This tests checks the following scenario:
> tests->test
Done
Line 33:     * main thread is waiting for signal
Line 34:     * another thread is running a subprocess
Line 35:     * the subprocess exits before another thread dies
Line 36: 


-- 
To view, visit http://gerrit.ovirt.org/29392
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I5dbcd00cec22ef12f2b6253b016dcbd0aa889583
Gerrit-PatchSet: 10
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dima Kuznetsov <[email protected]>
Gerrit-Reviewer: Dan Kenigsberg <[email protected]>
Gerrit-Reviewer: Dima Kuznetsov <[email protected]>
Gerrit-Reviewer: Nir Soffer <[email protected]>
Gerrit-Reviewer: Saggi Mizrahi <[email protected]>
Gerrit-Reviewer: Yaniv Bronhaim <[email protected]>
Gerrit-Reviewer: Yeela Kaplan <[email protected]>
Gerrit-Reviewer: [email protected]
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to