2012-05-14 26 views
6

मेरे पास दो अभिनेताओं पर निम्नलिखित अनुक्रमिक कार्रवाई, एक माता पितापी और एक बच्चेसी:अक्का संदर्भ घड़ी/unwatch होता है-पहले संबंध

  1. पी देखता सी (context watch c)
  2. पी अनचाहे सी (context unwatch c)
  3. पी बंद हो जाता है सी शान (c ! PoisonPill)

क्या मैं जानना चाहता है चाहते हैं; क्या मुझे गारंटी है कि पीसी के लिए Terminated ईवेंट प्राप्त नहीं करता है?

यहाँ कोड

class HappensBefore extends App { 
    class C extends Actor { def receive = {} } 
    class P extends Actor { 
    val c = context actorOf Props[C] 
    context watch c 
    context unwatch c 
    c ! PoisonPill 
    def receive = { case Terminated(child) => println("Oh Noes!") } 
    } 
    ActorSystem("test") actorOf Props[P] 
} 

उत्तर

4

का एक नमूना टुकड़ा है नहीं, ऐसी कोई गारंटी नहीं है।

+1

विक्टर - उत्तर के लिए धन्यवाद। क्या इसके चारों ओर एक रास्ता है? यह महत्वपूर्ण है कि मेरे मामले में अभिनेता 'पी' इस तरह से 'सी' से श्रोता के रूप में खुद को अपमानित कर सकता है, जब बाद में यह 'सी' बंद हो जाता है, तो उसे 'समाप्त' घटना नहीं मिलती है। 'अनचाहे' कॉल पर 'ऑनसेफ' कॉल संलग्न करने का कोई तरीका है? अन्यथा, * अनचाहे * का उपयोग क्या है? –

+0

आप नहीं जानते कि सी किसी अन्य कारण से किसी अन्य कारण से समाप्त हो रहा है या नहीं। अब, यह सिर्फ काम कर सकता है, और वर्तमान में लागू होने के तरीके के कारण उस 100% समय को कर सकता है। हम सिर्फ गारंटी नहीं देते कि यह होगा। –

+0

क्षमा करें, मुझे और अधिक स्पष्ट होना चाहिए था। केवल एक कॉल है जो सी को रोकती है; यह चरण 4 –

संबंधित मुद्दे