5 #include "lock_server_cache_rsm.h"
11 // Main loop of lock_server
13 char tprintf_thread_prefix = 's';
16 main(int argc, char *argv[])
20 setvbuf(stdout, NULL, _IONBF, 0);
21 setvbuf(stderr, NULL, _IONBF, 0);
26 fprintf(stderr, "Usage: %s [master:]port [me:]port\n", argv[0]);
30 char *count_env = getenv("RPC_COUNT");
31 if(count_env != NULL){
32 count = atoi(count_env);
36 // Comment out the next line to switch between the ordinary lock
37 // server and the RSM. In Lab 6, we disable the lock server and
38 // implement Paxos. In Lab 7, we will make the lock server use your
42 // You must comment out the next line once you are done with Step One.
45 rpcs server(atoi(argv[1]));
46 lock_server_cache_rsm ls;
47 server.reg(lock_protocol::acquire, &ls, &lock_server_cache_rsm::acquire);
48 server.reg(lock_protocol::release, &ls, &lock_server_cache_rsm::release);
49 server.reg(lock_protocol::stat, &ls, &lock_server_cache_rsm::stat);
51 rsm rsm(argv[1], argv[2]);
52 lock_server_cache_rsm ls(&rsm);
53 rsm.set_state_transfer((rsm_state_transfer *)&ls);
54 rsm.reg(lock_protocol::acquire, &ls, &lock_server_cache_rsm::acquire);
55 rsm.reg(lock_protocol::release, &ls, &lock_server_cache_rsm::release);
56 rsm.reg(lock_protocol::stat, &ls, &lock_server_cache_rsm::stat);
62 rpcs server(atoi(argv[1]), count);
63 server.reg(lock_protocol::stat, &ls, &lock_server_cache::stat);
64 server.reg(lock_protocol::acquire, &ls, &lock_server_cache::acquire);
65 server.reg(lock_protocol::release, &ls, &lock_server_cache::release);