Una delle proposte per C++ 14 è Resumable Functions che fornisce a C++ ciò che è disponibile in C# oggi con i meccanismi asincrono/attesa. L'idea di base è che una funzione possa essere messa in pausa mentre si attende il completamento di un'operazione asincrona. Al termine dell'operazione asincrona, è possibile riprendere la funzione nel punto in cui è stata messa in pausa. Ciò avviene in modo non bloccante in modo che il thread da cui è stata richiamata la funzione di ripristino non sia bloccato.In quale contesto verranno ripristinate le funzioni in C++ 14?
Non è ovvio per me in quale contesto (thread) la funzione verrà ripresa. Sarà ripreso dal thread da cui è stata messa in pausa la funzione (questo è come viene fatto in C# come ho capito) o usa un altro thread?
Se viene ripreso dal thread da cui è stato sospeso, il thread deve essere messo in uno stato speciale o lo pianificatore lo gestirà?
non ho idea di quello che hai chiesto, ma se la funzione di ripresa è non bloccante, quindi presumibilmente si restituisce una sorta di 'std :: optional' e il ricevitore deve verificare se il risultato è stato disponibile o non. Sembra che tu possa già codificare così con la meccanica attuale di 'std :: future' ...? –
Non credo che la proposta sia stata adottata. – chris
@Karrek SB: la proposta è collegata se si desidera leggerla. Hai ragione che i futures possono essere utilizzati per ottenere la stessa cosa (in genere anche con il futuro proposto). La proposta spiega in dettaglio come differisce dall'utilizzare i futures direttamente e perché questa sarebbe una buona idea. –