на главную | войти | регистрация | DMCA | контакты | справка | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


моя полка | жанры | рекомендуем | рейтинг книг | рейтинг авторов | впечатления | новое | форум | сборники | читалки | авторам | добавить




Листинг А.6. Функции reader и writer

//bench/bw_pxmsg.c

41 void

42 writer(int contfd, mqd_t mqsend)

43 {

44  int ntowrite;

45  for(;;) {

46   Read(contfd, &ntowrite, sizeof(ntowrite));

47   while (ntowrite > 0) {

48    Mq_send(mqsend, buf, xfersize, 0);

49    ntowrite –= xfersize;

50   }

51  }

52 }


53 void

54 reader(int contfd, mqd_t mqrecv, int nbytes)

55 {

56  ssize_t n;

57  Write(contfd, &nbytes, sizeof(nbytes));

58  while ((nbytes > 0) &&

59   ((n = Mq_receive(mqrecv, buf, xfersize, NULL)) > 0)) {

60   nbytes –= n;

61  }

62 }


Листинг А.5. Функция main для измерения полосы пропускания очереди сообщений Posix | UNIX: взаимодействие процессов | Программа измерения полосы пропускания очереди System V