home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume14 / sharedmem / part01 / src / client1b.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-05-17  |  807 b   |  37 lines

  1. /*
  2. This process, b, writes a string to variable b_var.
  3. It then checks variable a_var for a new value, and if it is, prints it.
  4. It then sleeps for 5 seconds.
  5. */
  6. #include <sys/time.h>
  7. #include "cm.h"
  8.  
  9. #define BUFFER_LENGTH    1000
  10. char b_data[BUFFER_LENGTH];
  11.  
  12. cm_value a_val = {0,0,0,1}, b_val = {b_data,BUFFER_LENGTH,0,0};
  13.  
  14. main()
  15. {
  16.     cm_variable *a_var, *b_var;
  17.     int seqno = 0;
  18.  
  19.     if (0> cm_init("b",0,0)) exit(-1);
  20.  
  21.     if (!(a_var = cm_declare("a_var",CM_ROLE_READER|CM_ROLE_WAKEUP)))
  22.         exit(-1);
  23.     if (!(b_var = cm_declare("b_var",CM_ROLE_NONXWRITER)))
  24.         exit(-1);
  25.  
  26.     for (;;) {
  27.         sprintf(b_data,"Message from b.  seq #%d",seqno++);
  28.         b_val.size = strlen(b_data) + 1;
  29.         cm_set_value(b_var,&b_val);
  30.         cm_sync(CM_NO_WAIT);
  31.         if (cm_get_new_value(a_var,&a_val))
  32.             printf("a_var: %s\n",a_val.data);
  33.         sleep(5);
  34.     }
  35. }
  36.  
  37.