[Python] Gestire eventi con callback

Manlio Perillo manlio.perillo a gmail.com
Dom 8 Mar 2015 20:12:59 CET


2015-03-08 1:23 GMT+01:00 Alessandro Re <ale a ale-re.net>:

> Ciao lista,
>
> ho un problema con delle callback, e sapendo che ci sono sistemi in
> cui si usano molto (e.g. in ambito web), magari qualcuno di voi mi può
> illuminare (scusate, il post è un po' lungo).
>
> Ho degli oggetti python che fanno riferimento a degli oggetti C++,
> quindi a volte mi trovo nella situazione in cui un oggetto C++ viene
> distrutto e, se l'oggetto python esiste ancora e cerca di far
> riferimento ad esso, provoca - giustamente - errore.
>
>
Cosa usi per interfacciarti con codice C++?
Che errore ottieni?

Non so se è un uso corretto, ma puoi provare ad usare una weakref, oppure
qualcosa di simile personalizzato.



> Ora, dal lato python ho delle callback per gestire degli eventi che
> arrivano da C++: quando un certo evento accade, una funzione python
> viene chiamata.
>
> Quindi immaginate ...
>

> [...]

Troppo complesso, passo.


>
> Ho poi una seconda domanda, che fortunatamente richiede meno parole :)
>
> A volte, viene dato un certo comando, ad esempio "send_data(123)";
> questa operazione viene fatta in modo asincrono, cioé il controllo
> torna subito all'utente e una callback verrà chiamata quando
> l'operazione è stata completata.
>
> Come posso rendere sincrona (bloccante) l'invocazione di un comando?
>
>
https://gist.github.com/perillo/21234cf7b06873227cb2

Funziona se la callback viene chiamata da un thread separato.
Il codice e sovra-semplificato, in particolare non gestisce correttamente
gli errori.

> [...]

Ciao  Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150308/079900f9/attachment-0001.html>


Maggiori informazioni sulla lista Python