Fixed two major bugs in paxos.cc.
[invirt/third/libt4.git] / lock_server.h
index 381c527..560167f 100644 (file)
@@ -19,8 +19,12 @@ public:
     map<callback_t, lock_protocol::xid_t> old_requests;
     mutex m;
     lock_state& operator=(const lock_state&);
+
+    MEMBERS(held, held_by, wanted_by)
 };
 
+MARSHALLABLE(lock_state)
+
 typedef map<lock_protocol::lockid_t, lock_state> lock_map;
 
 class lock_server : public rsm_state_transfer {
@@ -31,9 +35,9 @@ class lock_server : public rsm_state_transfer {
         lock_state &get_lock_state(lock_protocol::lockid_t lid);
         fifo<lock_protocol::lockid_t> retry_fifo;
         fifo<lock_protocol::lockid_t> revoke_fifo;
-        class rsm *rsm;
+        rsm *rsm_;
     public:
-        lock_server(class rsm *rsm = 0);
+        lock_server(rsm *r = 0);
         lock_protocol::status stat(int &, lock_protocol::lockid_t);
         void revoker();
         void retryer();