363f886d91dc17ef25d9ee6e34ae2caaeb757a6a
[invirt/third/libt4.git] / lock_smain.cc
1 #include "rpc/rpc.h"
2 #include <arpa/inet.h>
3 #include <stdlib.h>
4 #include "tprintf.h"
5 #include <unistd.h>
6 #include "lock_server.h"
7 #include "rsm.h"
8
9 // Main loop of lock_server
10
11 char tprintf_thread_prefix = 's';
12
13 int
14 main(int argc, char *argv[])
15 {
16     setvbuf(stdout, NULL, _IONBF, 0);
17     setvbuf(stderr, NULL, _IONBF, 0);
18
19     srandom((uint32_t)getpid());
20
21     if(argc != 3){
22         fprintf(stderr, "Usage: %s [master:]port [me:]port\n", argv[0]);
23         exit(1);
24     }
25
26     rsm rsm(argv[1], argv[2]);
27     lock_server ls(&rsm);
28     rsm.set_state_transfer(&ls);
29
30     rsm.reg(lock_protocol::acquire, &lock_server::acquire, &ls);
31     rsm.reg(lock_protocol::release, &lock_server::release, &ls);
32     rsm.reg(lock_protocol::stat, &lock_server::stat, &ls);
33
34     while(1)
35         sleep(1000);
36 }