Fixed two major bugs in paxos.cc.
[invirt/third/libt4.git] / lock_smain.cc
index fba7eae..3bd7376 100644 (file)
@@ -1,71 +1,30 @@
-#include "rpc.h"
+#include "lock_server.h"
 #include <arpa/inet.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include "lock_server_cache_rsm.h"
-#include "paxos.h"
-#include "rsm.h"
-
-#include "jsl_log.h"
+#include <unistd.h>
 
 // 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);
 }