X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/5fd8cc8409d0efadc07dfe8d6774ad9ff477663d..e478ac59e66e89cbc174e781ac715c8644539947:/lock_smain.cc diff --git a/lock_smain.cc b/lock_smain.cc index fba7eae..3bd7376 100644 --- a/lock_smain.cc +++ b/lock_smain.cc @@ -1,71 +1,30 @@ -#include "rpc.h" +#include "lock_server.h" #include -#include -#include -#include "lock_server_cache_rsm.h" -#include "paxos.h" -#include "rsm.h" - -#include "jsl_log.h" +#include // Main loop of lock_server -char tprintf_thread_prefix = 's'; - -int -main(int argc, char *argv[]) -{ - int count = 0; - - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); - - srandom(getpid()); +char log_thread_prefix = 's'; - if(argc != 3){ - fprintf(stderr, "Usage: %s [master:]port [me:]port\n", argv[0]); - exit(1); - } +int main(int argc, char *argv[]) { + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); - char *count_env = getenv("RPC_COUNT"); - if(count_env != NULL){ - count = atoi(count_env); - } + srandom((uint32_t)getpid()); - //jsl_set_debug(2); - // Comment out the next line to switch between the ordinary lock - // server and the RSM. In Lab 6, we disable the lock server and - // implement Paxos. In Lab 7, we will make the lock server use your - // RSM layer. -#define RSM -#ifdef RSM -// You must comment out the next line once you are done with Step One. -//#define STEP_ONE -#ifdef STEP_ONE - rpcs server(atoi(argv[1])); - lock_server_cache_rsm ls; - server.reg(lock_protocol::acquire, &ls, &lock_server_cache_rsm::acquire); - server.reg(lock_protocol::release, &ls, &lock_server_cache_rsm::release); - server.reg(lock_protocol::stat, &ls, &lock_server_cache_rsm::stat); -#else - rsm rsm(argv[1], argv[2]); - lock_server_cache_rsm ls(&rsm); - rsm.set_state_transfer((rsm_state_transfer *)&ls); - rsm.reg(lock_protocol::acquire, &ls, &lock_server_cache_rsm::acquire); - rsm.reg(lock_protocol::release, &ls, &lock_server_cache_rsm::release); - rsm.reg(lock_protocol::stat, &ls, &lock_server_cache_rsm::stat); -#endif // STEP_ONE -#endif // RSM + if(argc != 3){ + cerr << "Usage: " << argv[0] << " [master:]port [me:]port" << endl; + exit(1); + } -#ifndef RSM - lock_server_cache ls; - rpcs server(atoi(argv[1]), count); - server.reg(lock_protocol::stat, &ls, &lock_server_cache::stat); - server.reg(lock_protocol::acquire, &ls, &lock_server_cache::acquire); - server.reg(lock_protocol::release, &ls, &lock_server_cache::release); -#endif + rsm rsm(argv[1], argv[2]); + lock_server ls(&rsm); + rsm.set_state_transfer(&ls); + rsm.reg(lock_protocol::acquire, &lock_server::acquire, &ls); + rsm.reg(lock_protocol::release, &lock_server::release, &ls); + rsm.reg(lock_protocol::stat, &lock_server::stat, &ls); - while(1) - sleep(1000); + while(1) + sleep(1000); }