[issue42443] Provide Thread creation hook support

2021-05-19 Thread Gregory P. Smith


Gregory P. Smith  added the comment:

> > * IMO it should be called after profiling and tracing hook, so non-trivial 
> > hooks can be profiled and traced.
> Makes sense, Done.

I updated the PR do this.  (if your "Done" indicated you had done this 
somewhere, it appears you never pushed your changes to the PR branch on github 
:)

> > * It's important to define and document, which thread runs the hook 
> (calling thread or new thread).
> Will update documentation when we agree upon appropriate API.

I updated the docstring in the PR.

> > * Since the hook is designed to monitor thread creation, would it make 
> > sense to pass the thread object to the hook?
> As it's called within the context of the created thread I guess this is not 
> needed (but as you prefer).

I updated the PR to do this.

> > * How does the hook behave when the callback raises an exception?
> I guess it makes sense to do similar thing as in case of profile/trace hooks 
> (Error in the profile function will cause itself unset). WDYT?

I like the consistency.  I've updated the PR.

> > * Is a single hook good enough or should the API behave more like atexit, 
> > which supports an arbitrary amount of hooks?
> Feels like it makes sense to keep API similar to what profile/trace provides, 
> otherwise it would be inconsistent.

Agreed.  when writing the docs we can mention this.  Anyone setting these hooks 
would be wise to check what's already set and decide if they want to set theirs 
at all or save that and chain call it or not.  It is expected to be rare to set 
this.  Our own use case is effectively platform wide for use in most 
applications.

> > * Instead of just a creation hook, how about lifetime hooks are also called 
> > when a thread ends?
> Sounds fine, do you mean two independent hooks (_thread_creation_hook, 
> _thread_termination_hook) or some other form?

Lets leave this as a separate feature to add if the need arises.  I can imagine 
uses in threading tests, but that doesn't feel like a strong use case.

--
versions: +Python 3.11

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-12-16 Thread Piotr Stanczyk


Piotr Stanczyk  added the comment:

Friendly ping - does the proposal sound fine?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-24 Thread Piotr Stanczyk


Piotr Stanczyk  added the comment:

Thanks Christian for looking into this, please find my responses inlined:

> * IMO it should be called after profiling and tracing hook, so non-trivial 
> hooks can be profiled and traced.
Makes sense, Done.

> * It's important to define and document, which thread runs the hook (calling 
> thread or new thread).
Will update documentation when we agree upon appropriate API.

> * Since the hook is designed to monitor thread creation, would it make sense 
> to pass the thread object to the hook?
As it's called within the context of the created thread I guess this is not 
needed (but as you prefer).

> * How does the hook behave when the callback raises an exception?
I guess it makes sense to do similar thing as in case of profile/trace hooks 
(Error in the profile function will cause itself unset). WDYT?

> * Is a single hook good enough or should the API behave more like atexit, 
> which supports an arbitrary amount of hooks?
Feels like it makes sense to keep API similar to what profile/trace provides, 
otherwise it would be inconsistent.


> * Instead of just a creation hook, how about lifetime hooks are also called 
> when a thread ends?
Sounds fine, do you mean two independent hooks (_thread_creation_hook, 
_thread_termination_hook) or some other form?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

Besindes tests, PR also needs documentation and a better definition how and 
when the hook is called.

* IMO it should be called after profiling and tracing hook, so non-trivial 
hooks can be profiled and traced.
* It's important to define and document, which thread runs the hook (calling 
thread or new thread).
* Since the hook is designed to monitor thread creation, would it make sense to 
pass the thread object to the hook?
* How does the hook behave when the callback raises an exception?
* Is a single hook good enough or should the API behave more like atexit, which 
supports an abitrary amount of hooks?
* Instead of just a creation hook, how about lifetime hooks are also called 
when a thread ends?

--
nosy: +christian.heimes

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-23 Thread Gregory P. Smith


Change by Gregory P. Smith :


--
components: +Library (Lib)

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-23 Thread Gregory P. Smith


Change by Gregory P. Smith :


--
assignee:  -> gregory.p.smith

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-23 Thread Thomas Wouters


Change by Thomas Wouters :


--
nosy: +gregory.p.smith, twouters

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-23 Thread Roundup Robot


Change by Roundup Robot :


--
keywords: +patch
nosy: +python-dev
nosy_count: 1.0 -> 2.0
pull_requests: +22369
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23477

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42443] Provide Thread creation hook support

2020-11-23 Thread Piotr Stanczyk


New submission from Piotr Stanczyk :

For monitoring purposes we would like to have a way of registering newly 
created Python threads with a runtime. For that reason we ask to add a thread 
creation hook inside threading.py. There are 2 similar hooks already 
(_profile_hook and _trace_hook).

--
messages: 381672
nosy: stanczyk
priority: normal
severity: normal
status: open
title: Provide Thread creation hook support
type: enhancement
versions: Python 3.10

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com