About IceBox's thread reliability

Yunqiao YinYunqiao Yin Member Yin YunqiaoOrganization: BaosteelProject: real time process control system ✭✭
I love IceBox's simplicity and powerful features.But when a uncatched exception occured(such as a bad pointer,or s segment fault,signal 11 etc...),all services will end up with the IceBox process. Even if I catch it and just exit the thread which the exception throws from,I find Ice run-time can not restart a new thread to keep the available thread pool size. So I suggest that IceBox can make the services or threads more independent with each other.

Comments

  • matthewmatthew NL, CanadaMember Matthew NewhookOrganization: ZeroC, Inc.Project: Internet Communications Engine ✭✭✭
    I'm not really sure what you want the Ice core to do. If you terminate an Ice runtime thread without telling the core, its hardly suprising that it will not spawn another -- since the core probalby thinks that it still exists and is available for processing requests.

    A more appropriate action may be, if you want to continue along with a buggy service that causes segfaults, would be to log the error and leave the processing thread running. In fact, this is exactly what occurs under Windows. You get an unknown exception on the client and the server keeps processing data -- because the access violation becomes a structured exception which is caught by catch(...).
  • Yunqiao YinYunqiao Yin Member Yin YunqiaoOrganization: BaosteelProject: real time process control system ✭✭
    matthew wrote:
    I'm not really sure what you want the Ice core to do. If you terminate an Ice runtime thread without telling the core, its hardly suprising that it will not spawn another -- since the core probalby thinks that it still exists and is available for processing requests.

    A more appropriate action may be, if you want to continue along with a buggy service that causes segfaults, would be to log the error and leave the processing thread running. In fact, this is exactly what occurs under Windows. You get an unknown exception on the client and the server keeps processing data -- because the access violation becomes a structured exception which is caught by catch(...).

    Thanks for your reply.I just want threads to be independent from each other,just like processes.Maybe it is impossible.
  • matthewmatthew NL, CanadaMember Matthew NewhookOrganization: ZeroC, Inc.Project: Internet Communications Engine ✭✭✭
    Yes, that's not really possible. All threads co-exist in the same memory space so they can all overwrite each other and do other bad things if they are buggy.
Sign In or Register to comment.