на главную | войти | регистрация | 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
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


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



Листинг 16.6. Процедура многопоточного сервера

//sunrpc/square3/server.c

1  #include "unpipc.h"

2  #include "square.h"


3  bool_t

4  squareproc_2_svc(square_in *inp, square_out *outp, struct svc_req *rqstp)

5  {

6   printf("thread %Id started, arg = %ld\n",

7   pr_thread_id(NULL), inp->arg1);

8   sleep(5);

9   outp->res1 = inp->arg1 * inp->arg1;

10  printf("thread %ld done\n", pr_thread_id(NULL));

11  return(TRUE);

12 }


13 int

14 square_prog_2_freeresult(SVCXPRT *transp, xdrproc_t xdr_result,

15 caddr_t result)

16 {

17  xdr_free(xdr_result, result);

18  return(1);

19 }


Новый аргумент в вызове процедуры | UNIX: взаимодействие процессов | Новые аргументы и возвращаемое значение