package com.linkedin.parseq.zk.recipes;

import com.linkedin.parseq.Task;


/**
 * @author Ang Xu
 */
public interface Synchronizable {
  /**
   * Runs the given task while holding this synchronizable.
   *
   * @param task task to run
   * @param deadline the absolute time, in milliseconds, to wait for the synchronizable.
   *
   * @return a new task wrapped with {@link ZKLock#synchronize(Task, long)}
   */
  <T> Task<T> synchronize(Task<T> task, long deadline);
}

@@ -73,16 +73,138 @@
 ;%0A%0A%0A/**%0A
+ * Synchronizable represents a object upon which %7B@link Task%7Ds within different plans%0A * can be properly synchronized.%0A *%0A
  * @auth

Add javadoc for Synchronizable