Sono sicuro che questo è un modello di progettazione comune, ma mi sembra di avere un punto cieco.
Ho il requisito che la chiamata alla funzione da Application to Service stia bloccando, ma il servizio deve fare qualcosa di asincrono.
Bene, posso gestirlo, MA , ci possono essere più applicazioni e c'è solo un servizio.
Mentre il servizio dovrebbe bloccare l'applicazione, dovrebbe anche essere in grado di gestire più richieste parallele da diverse applicazioni.
Suppongo di dover generare un nuovo thread per ogni richiesta dell'applicazione, ma come posso quindi tornare dalla discussione all'applicazione alla fine?
Non mi dispiace inserire un assemblatore per memorizzare l'indirizzo di ritorno dell'applicazione & pop it dopo, ma è davvero necessario?
Devo fare qualcosa di speciale in C ++ per contrassegnare la funzione di servizio come ri-entrante?
Qualcuno può sollevare la benda?
[Aggiorna] Non c'è alcuna correlazione tra le applicazioni.
Inoltre, solo il servizio potrebbe generare un thread, non le applicazioni. Quindi, sto pensando ad una service main
che genera un gruppo di service thread
s, ma non vedo come posso gestire la funzione di blocco delle chiamate & tornare.