Bulletin number: 56 Products affected: D711D Description: soft channels in threads Component: compiler Date: Fri May 4 15:18:42 BST 1990 ----- There have been reports of strangely behaving C programs which use soft channels with threads. Such symptoms as binaries running fine on say a B008 and then failing on a B016. This can be caused by using soft channels to communicate between threads and their parent main() or another sibling thread. These channels should have memory malloced for them as illustrated in the example program below. If this is not done then all channels have NULL pointers and so use the same word in memory. This arrangement may work fine on occasions when the channel communications do not trample over each other. If, as in a B016, the running order of processes can be altered say by VME buss activity then chaos may ensue. #include #include #include CHAN *to_thread, *from_thread; main(argc,argv,envp,in_ports,ins,out_ports,outs) int argc,ins,outs; char *argv[],*envp[]; CHAN *in_ports[],*out_ports[]; { extern void thread(); int news = 0; /*!!!>> Allocate memory to channels <