Skip to content
Snippets Groups Projects
  1. Dec 07, 2015
    • ShadowNinja's avatar
      Fix Event implementation · 696148e2
      ShadowNinja authored
      On non-windows platforms this just used a semaphore,
      which meant that multiple calls to signal() would
      result in wait() returning multiple times.
      696148e2
  2. Nov 02, 2015
  3. Nov 01, 2015
    • kwolekr's avatar
      Fix Lua scripting synchronization · 52e5b513
      kwolekr authored
      For several years now, the lua script lock has been completely broken.
      This commit fixes the main issue (creation of a temporary rather than
      scoped object), and fixes a subsequent deadlock issue caused by
      nested script API calls by adding support for recursive mutexes.
      52e5b513
  4. Oct 28, 2015
    • kwolekr's avatar
      Add DISABLE_CLASS_COPY macro (and use it) · c56d7fe0
      kwolekr authored
      Use this macro to disallow copying of an object using the assignment
      operator or copy constructor.  This catches otherwise silent-but-deadly
      mistakes such as "ServerMap map = env->getMap();" at compile time.
      
      If so desired, it is still possible to copy a class, but it now requires
      an explicit call to memcpy or std::copy.
      c56d7fe0
  5. Aug 24, 2015
    • ShadowNinja's avatar
      Clean up threading · e4bff8be
      ShadowNinja authored
        * Rename everything.
          * Strip J prefix.
          * Change UpperCamelCase functions to lowerCamelCase.
        * Remove global (!) semaphore count mutex on OSX.
        * Remove semaphore count getter (unused, unsafe, depended on internal
          API functions on Windows, and used a hack on OSX).
        * Add `Atomic<type>`.
        * Make `Thread` handle thread names.
        * Add support for C++11 multi-threading.
        * Combine pthread and win32 sources.
        * Remove `ThreadStarted` (unused, unneeded).
        * Move some includes from the headers to the sources.
        * Move all of `Event` into its header (allows inlining with no new includes).
        * Make `Event` use `Semaphore` (except on Windows).
        * Move some porting functions into `Thread`.
        * Integrate logging with `Thread`.
        * Add threading test.
      e4bff8be
Loading