Advertisement
Rummeris

serve_client.c

Nov 17th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.77 KB | None | 0 0
  1. pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER;
  2.  
  3. void *downtime(){
  4.  
  5.     sleep(1);
  6.     root_balanced = balanceTree(root);
  7.     freeSubtree(root);
  8.     root = root_balanced;
  9.     root_balanced=NULL;
  10.  
  11.     sleep(1);
  12.     root_balanced = balanceTree(root);
  13.     freeSubtree(root);
  14.     root = root_balanced;
  15.     root_balanced=NULL;
  16.  
  17.     sleep(1);
  18.     root_balanced = balanceTree(root);
  19.     freeSubtree(root);
  20.     root = root_balanced;
  21.     root_balanced=NULL;
  22.  
  23.     return NULL;
  24. }
  25.  
  26. void* ServeClient(char *client){
  27.     FILE *fp;
  28.     char str[80];
  29.     char delim[] = " ";
  30.     int n, number = 0;
  31.  
  32.     fp = fopen(client, "r");
  33.  
  34.     while (fgets(str, sizeof(str), fp) != NULL) {
  35.         char *ptr = strtok(str, delim);
  36.         printf("[%s]%s", client, ptr);
  37.         ptr = strtok(NULL, delim);
  38.  
  39.         switch (str[0])
  40.             {
  41.                 case 'i':
  42.                     n = number = 0;
  43.                     while (ptr[n] != '\n') {
  44.                         number = number * 10 + (int)ptr[n] - 48;
  45.                         n++;
  46.                     }
  47.                     printf(" %d\n", number);
  48.                     root = insertNode(root, number);
  49.                     break;
  50.  
  51.                 case 'd':
  52.                     n = number = 0;
  53.                     while (ptr[n] != '\n') {
  54.                         number = number * 10 + (int)ptr[n] - 48;
  55.                         n++;
  56.                     }
  57.                     printf(" %d\n", number);
  58.                     root = deleteNode(root, number);
  59.                     break;
  60.  
  61.                 case 'c':
  62.                     printf(" = %d\n", countNodes(root));
  63.                     break;
  64.  
  65.                 case 's':
  66.                     printf(" = %d\n", sumSubtree(root));
  67.                     break;
  68.             }
  69.     }
  70.  
  71.     fclose(fp);
  72.     return NULL;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement