none
Concurrent receivers must be reissue problem RRS feed

  • Question

  • Dear All,

    I see that the concurrent receivers must be reissue problem has been raised in http://social.msdn.microsoft.com/Forums/en-US/roboticsccr/thread/ae8390b4-1b77-441c-8c22-f7de26e66357. We are using Microsoft Robotics Developer Studio 2008 R3 and getting this error. I believe this has been fixed in R4 but however we cannot use R4 since it works in VS2010 and .NET 4.0 and we have not yet moved to that. We are using .NET 3.5  and VS 2008 (and sometimes VS 2010 but build the libraries .NET 3.5). Can you please let me know if there is there any release between R3 and R4 from which I can get a fix for this (From the MSRDS site I do not see any) ?

    Thanks,

    Venkat

    Wednesday, December 12, 2012 5:12 PM
    Moderator

Answers

  • When the port gets gced, the receiver is also gced.

    The port has an internal Store which is maintaining the receivers for this port.

    Instead of waiting for gc, you can also call port.Clear(), which will release all the Receivers for that port.

    Tuesday, December 18, 2012 9:39 PM
    Moderator

All replies

  • I am not aware of any patches between R3 and RDS4 that would address this.

    Wednesday, December 12, 2012 6:58 PM
  • Hi Gershon,

    Thank you for your time and reply. Currently, I am creating those receivers as persistent receivers and adding them to the interleave when I want these receivers to be non persistent. So, these receivers will be in memory until the interleave is teared down? I only post to once to the port to which this receiver is attached and since the port will get GCed once it is no longer used after the first post, the receiver associated with the post will also be GCed? Or will the receiver still not be GCed since it can only be removed when you do post a tear down message? Please clarify.

    I am afraid I still do not yet clearly understand how to clean up receivers although I do understand how to safely cleanup Dispatcher and DispatcherQueue.

    Thanks,

    Venkat

    PS: Please let me know if you think I should put this question to a new post.

    Saturday, December 15, 2012 1:14 AM
    Moderator
  • When the port gets gced, the receiver is also gced.

    The port has an internal Store which is maintaining the receivers for this port.

    Instead of waiting for gc, you can also call port.Clear(), which will release all the Receivers for that port.

    Tuesday, December 18, 2012 9:39 PM
    Moderator