Francesco Romani has posted comments on this change. Change subject: lib: allow to set system thread names ......................................................................
Patch Set 2: (5 comments) https://gerrit.ovirt.org/#/c/41052/2/lib/vdsm/threadname.py File lib/vdsm/threadname.py: Line 32: try: Line 33: _pthread_setname_np = _pthread_setname_np_proto(('pthread_setname_np', Line 34: LIBPTHREAD)) Line 35: except AttributeError: Line 36: _pthread_setname_np = None > Lets log a warning *once* if pthread_setname_np is not available, and initi will do. Line 37: Line 38: Line 39: def set_system_name(thread, name): Line 40: if _pthread_setname_np is None: Line 41: raise RuntimeError("Cannot set system name for threads") Line 42: Line 43: ident = getattr(thread, "ident", None) Line 44: if ident is None: Line 45: raise RuntimeError("Cannot set system name on a thread without ident") > Is this possible? will double check, and drop if it is impossible. I'm probably being overzealous here. Line 46: Line 47: _pthread_setname_np(ident, name[:15]) Line 48: Line 49: Line 43: ident = getattr(thread, "ident", None) Line 44: if ident is None: Line 45: raise RuntimeError("Cannot set system name on a thread without ident") Line 46: Line 47: _pthread_setname_np(ident, name[:15]) > Taking only part of the name is bad api. We should raise ValueError if the Will raise ValueError. The limit is documented: http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html """ [...] The thread name is a meaningful C language string, whose length is restricted to 16 characters, including the terminating null byte ('\0'). [...] """ Line 48: Line 49: Line 50: def systemname(name): Line 51: """ Line 48: Line 49: Line 50: def systemname(name): Line 51: """ Line 52: Decorator to set set the system name for a thread body callable. > body is not common term, I think we should use f or func instead. will rename to 'func', and post a followup patch showing some usage examples. Line 53: The system name must be an ASCII string at most 15 characters long. Line 54: """ Line 55: def decorator(func): Line 56: @functools.wraps(func) Line 57: def wrapper(*args, **kwargs): Line 58: thread = threading.current_thread() Line 59: try: Line 60: set_system_name(thread, name) Line 61: except RuntimeError: I believe we should swallow silently ValueError here, right? Line 62: pass Line 63: return func(*args, **kwargs) Line 64: return wrapper -- To view, visit https://gerrit.ovirt.org/41052 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib96bd0471a07449d2a0a0328137e8437aefad901 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Francesco Romani <from...@redhat.com> Gerrit-Reviewer: Dan Kenigsberg <dan...@redhat.com> Gerrit-Reviewer: Federico Simoncelli <fsimo...@redhat.com> Gerrit-Reviewer: Francesco Romani <from...@redhat.com> Gerrit-Reviewer: Jenkins CI Gerrit-Reviewer: Nir Soffer <nsof...@redhat.com> Gerrit-Reviewer: Yaniv Bronhaim <ybron...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-HasComments: Yes _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches