Advertisement
HimikoWerckmeister

Untitled

Mar 5th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #define _GNU_SOURCE
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <pthread.h>
  5. #include <time.h>
  6.  
  7. #define DATA_SIZE ((int) 100)
  8. #define NUM_THREADS ((int) 40)
  9. #define NUM_SWAPS ((int) 2000000)
  10.  
  11. int data[DATA_SIZE];
  12.  
  13. void swap(int *a, int *b)
  14. {
  15. int temp;
  16. temp = *a;
  17. *a = *b;
  18. *b = temp;
  19.  
  20. }
  21.  
  22. void ZeroInit()// to do: change this name later
  23. {
  24. for(int i=0;(i+3)<=DATA_SIZE+2;i++)
  25. {
  26. data[i]=i;
  27. }
  28. }
  29.  
  30. void* A(void *arg)
  31. {
  32. int *limitptr = (int*)arg;
  33. int limit=*limitptr;
  34. int idx1=0;
  35. int idx2=0;
  36. //srand(time(NULL));
  37. for(int i=0;i<limit;i++)
  38. {
  39. idx1= rand()%NUM_THREADS;
  40. idx2= rand()%NUM_THREADS;
  41. swap(&data[idx1],&data[idx2]);
  42. }
  43. //return 0;
  44. pthread_exit(0);
  45. }
  46.  
  47.  
  48.  
  49. void SpawnThreads(unsigned int n)
  50. {
  51.  
  52. int iNumThreads = n;
  53. int ret=-1;
  54. int ii=NUM_THREADS;
  55. pthread_t *threadArray=malloc(sizeof(pthread_t)*iNumThreads);
  56. for(int i=0;i<iNumThreads;i++)
  57. {
  58. ret=pthread_create(&threadArray[i],NULL,A,&ii);
  59. if(ret != 0)
  60. {
  61. printf("Pthread error");
  62. }
  63. pthread_join(threadArray[i],NULL);
  64. }
  65. }
  66.  
  67. void *B(void *arg)
  68. {
  69. int *limitptr = (int*)arg;
  70. int limit=*limitptr;
  71. for(int i=0;i<limit;i++)
  72. {
  73.  
  74. }
  75. }
  76.  
  77. //check that each number from 0 to n occurs exactly once in the array
  78. void DataSpawn()
  79. {
  80.  
  81. }
  82.  
  83. int main(int argc, char **argv)
  84. {
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement