Chcę utworzyć dwie kolejki szeregowe A & B. W przypadku, gdy kolejka B jest celem kolejki A. Chcę umieścić w kolejce niektóre bloki na B i zawiesić je, dopóki nie będę gotowy do ich wykonania, jednak chcę kontynuować wykonywanie bloków w kolejce A.Czy zawieszenie kolejki wysyłkowej zawiesza kolejkę docelową?
Czy zawieszenie B spowoduje zawieszenie kolejki docelowej (kolejka A)?
Moim zdaniem jest to, że chcę zaplanować te bloki (w kolejce B) do wykonania w późniejszej (nieokreślonej) dacie, jednak nie chcę, aby kiedykolwiek działały jednocześnie (dotyczy to danych podstawowych^_ ^) i nie chcę zajmować się semaforami. Ale chcę Kolejka A do dalszego przetwarzania jest to bloki, podczas gdy B jest zawieszony
W przypadku, że nie było jasne, oto przykładowy kod
dispatch_queue_t queueA = dispatch_queue_create("app.queue.A");
dispatch_queue_t queueB = dispatch_queue_create("app.queue.B");
dispatch_set_target_queue(queueB, queueA);
dispatch_suspend(queueB);
/*
* Add a bunch of blocks to queue B or A
* Where the ones added to A should execute immediately
*/
//Wait till blocks on queue A have finished and start up B
dispatch_resume(queueB);
dispatch_release(queueA);
dispatch_release(queueB);