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