code: public static WebDriver createSyncronized(WebDriver webDriver) {
          ClassLoader       classLoader       = webDriver.getClass().getClassLoader();
          List<Class<?>>    interfaces        = ClassUtils.getAllInterfaces(webDriver.getClass());
          InvocationHandler invocationHandler = new SynchronizedWebDriverInvocationHandler(webDriver);
  
          return (WebDriver) Proxy.newProxyInstance(classLoader,
                                                    interfaces.toArray(new Class[interfaces.size()]),
                                                    invocationHandler);
      }
docs: enables Webdriver usage of the same from different threads (handles locks internally). This locks an already in use instance.
  <p/>
  <i>Difference to <tt>ThreadGuard</tt>:</i> It does not forbid usage of a single webdriver by different threads.
  <p/>
  based on {@link org.openqa.selenium.support.ThreadGuard}