<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-03-08 1:23 GMT+01:00 Alessandro Re <span dir="ltr"><<a href="mailto:ale@ale-re.net" target="_blank">ale@ale-re.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Ciao lista,<br>
<br>
ho un problema con delle callback, e sapendo che ci sono sistemi in<br>
cui si usano molto (e.g. in ambito web), magari qualcuno di voi mi può<br>
illuminare (scusate, il post è un po' lungo).<br>
<br>
Ho degli oggetti python che fanno riferimento a degli oggetti C++,<br>
quindi a volte mi trovo nella situazione in cui un oggetto C++ viene<br>
distrutto e, se l'oggetto python esiste ancora e cerca di far<br>
riferimento ad esso, provoca - giustamente - errore.<br>
<br></blockquote><div><br></div><div>Cosa usi per interfacciarti con codice C++?</div><div>Che errore ottieni?</div><div><br></div><div>Non so se è un uso corretto, ma puoi provare ad usare una weakref, oppure qualcosa di simile personalizzato.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Ora, dal lato python ho delle callback per gestire degli eventi che<br>
arrivano da C++: quando un certo evento accade, una funzione python<br>
viene chiamata.<br>
<br>
Quindi immaginate ...<br></blockquote><div><br></div><div>> [...]</div><div><br></div><div>Troppo complesso, passo.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Ho poi una seconda domanda, che fortunatamente richiede meno parole :)<br>
<br>
A volte, viene dato un certo comando, ad esempio "send_data(123)";<br>
questa operazione viene fatta in modo asincrono, cioé il controllo<br>
torna subito all'utente e una callback verrà chiamata quando<br>
l'operazione è stata completata.<br>
<br>
Come posso rendere sincrona (bloccante) l'invocazione di un comando?<br>
<br></blockquote><div><br></div><div><a href="https://gist.github.com/perillo/21234cf7b06873227cb2">https://gist.github.com/perillo/21234cf7b06873227cb2</a><br></div><div><br></div><div>Funziona se la callback viene chiamata da un thread separato.</div><div>Il codice e sovra-semplificato, in particolare non gestisce correttamente gli errori.</div><div> </div><div>
</div></div></div><div class="gmail_extra">> [...]</div><div class="gmail_extra"><br></div><div class="gmail_extra">Ciao  Manlio</div></div>