)]}'
{
  "log": [
    {
      "commit": "7a2065d3dbdf361bbbe8b66a5b03080c0e532403",
      "tree": "35318367c65d8a46400ab0fec57102588e96a095",
      "parents": [
        "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "message": "cpp: Add profiling hooks to Mutex, ReadWriteMutex() classes\n\nExtend the Thrift C++ Concurrency library by allowing a user to register\na callback and a sample rate for lock primitive contention profiling.\nThe callback will be invoked approximately once every sampleRate calls\nto Mutex::lock(), Mutex::timedlock(), ReadWriteLock::acquireRead(), or\nReadWriteLock::acquireWrite().\n\nThe callback receives a pointer to the mutex responsible and the time\nwaited on the lock in micros (whether the lock was successfuly acquire\nor not).  The user can then implement a registry of his choice to\nlog/collect this data as needed.\n\nThis can all be easily compiled out if it harms performance.  By\ndefault, there is no profiling callback, so the overhead is minimal\n(one branch).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920681 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7",
      "tree": "c8fcb43e67e5787772f737062e436d6e25ca8220",
      "parents": [
        "4e19f1914e49db4b7913ff0f5af8eec51caee875"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "message": "cpp: Fix a race/deadlock in ThreadManager\n\nWhen removing a task from the pending queue, we were only notifying a\nblocked thread waiting to enqueue a task if the number of pending tasks\nwas exactly one less than the limit.  However, if two tasks are finished\nat about the same time, this can result in two spots being freed up with\nonly one notify.  With this change, we always notify on task completion,\neliminating the race/deadlock.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920680 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4e19f1914e49db4b7913ff0f5af8eec51caee875",
      "tree": "64db18658f59cb9411dc32d8c9a764131e8c82f8",
      "parents": [
        "6c1ee214c447bef02c3aa091ff5706503d1b1004"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "message": "cpp: non-blocking add for ThreadManager\n\nIt\u0027s rare for the ThreadManager mutex to be contended, but it is\npossible.  For nonblocking applications, it is necessary to have a\nstrict timeout for the lock acquisition.  With this change, that timeout\nis enforced.  Also add timeout parameters to Mutex::lock and\nGuard::Guard to support this feature.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920679 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6c1ee214c447bef02c3aa091ff5706503d1b1004",
      "tree": "1a23e82355b5cadd2ea675cc37c39313f54d353e",
      "parents": [
        "a1a15112fed5f7ec934a352920b4c535941fd1ab"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "message": "cpp: Extend FunctionRunner to support periodic calls (in a thread)\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920678 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1",
      "tree": "da5926056c211612a1c1856e83fc7493f2af5f12",
      "parents": [
        "58e4d2c6e3b237825b573116d4e06781733ab5f5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "message": "cpp: TNonblockingServer: Allow unrun tasks to expire after a time limit\n\nEnhance ThreadManager to allow a expiration time interval to be assigned\nto tasks, and expire those tasks after that time limit has passed.\nEnhance TNonblockingServer to utilize this capability so it can be used\nfor overload resilience.\n\nNote: expired entries are only removed from the queue head, so the\nmechanism in ThreadManager may not do what you expect if you have\nheterogeneous expiration times. That\u0027s not an issue with\nTNonblockingServer (which will give all tasks the same limit) and might\nnot be in other cases where most tasks have the same limit and the rest\nexecute quickly. A full-up timeout queue would be more complex and have\ngreater overhead than that used here. It\u0027s unnecessary for the task at\nhand so I didn\u0027t go that route...\n\nThe TNonblocking interface is simple: a setTaskExpireTime() accepts a\n64-bit millisecond argument. 0 means infinite. A getTaskExpireTime()\naccessor completes the interface.\n\nThe ThreadManager interface involves an added argument to add() for the\nexpiration interval and a setExpireCallback() function for setting a\ncallback that is called for expired tasks (for this project this is\nnecessary to shut down the associated connection).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e96fa5502f38d91e7c417343e4c504384fc84f31",
      "tree": "99c93564471b280e9e74d089a824fdcd858b59b7",
      "parents": [
        "83b8fdac0ff52f1f1d9f96772b956c807f668593"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "message": "cpp: Add enum and constructor to RWGuard to make read/write more visible\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920669 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498",
      "tree": "17f873e6cd020a1dfbccb319229341c731698050",
      "parents": [
        "b9db49c6776bde3b06ce8a5ceb32c873f8de4592"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer: Use separate monitor for max queue\n\nWe were using the same monitor for max queue size and empty queue, this\nmeant the notifies might be going to the wrong place.\n\nThis change significantly reduces the time spent in futex calls in\nloaded servers.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920667 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b9db49c6776bde3b06ce8a5ceb32c873f8de4592",
      "tree": "a6925b9e86822ef11fed77eacb2cd50aa0e072d3",
      "parents": [
        "28e88ecac1cab801112587068ee4fbc6de457e49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "message": "cpp: Let Monitors share Mutex instances\n\n- Let Monitor objects share a Mutex() instance so that more than one\n  condition can be implemented on top of a single mutex protecting an\n  important data structure.\n- Make Mutex and Monitor noncopyable\n- Add an accessor to Mutex() so the underlying pthread_mutex_t* can be\n  retrieved for passing to pthread_condwait\n- Change Monitor to use the actual Mutex class instead of creating a\n  naked pthread_mutex_t on its own\n- Add new constructors to Monitor\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920666 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "01fe15322f55a9aec5de6807fe0d4c54db7d79f6",
      "tree": "2f95d72f6b8f0fd8f544ce46367f1aeacf4069f9",
      "parents": [
        "e574a065a9ed100bda718582dc3378abc2933e78"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer overload handling and optimizations\n\n- Establish a mechanism for TNonBlockingServer to handle overloads by\n  limiting the number of connections accepted or in-process.\n\n- Provide a framework for further work in handling server overloads.\n\n- Limit memory consumption of connection object pool.\n\n- Drop connections when overloaded.\n\n- Add overload-handling behavior allowing pending tasks to be dropped\n  from the front of the task queue (short of the ability to terminate\n  running tasks, these are the oldest tasks in the system and thus the\n  most likely to be beyond their freshness date).  This reduces the\n  chance of spending valuable CPU time processing a request that the\n  client has already timed out.\n\n- Uses a single persistent pipe() to communicate task completion instead\n  of constructing and monitoring a new socketpair() for every task in\n  the system.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920664 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3bb5e0581a076e5c754470f4d44979ad0cff8bc1",
      "tree": "98760787de98019370e9edebdc2565e9a878ef50",
      "parents": [
        "c771944644247f5ae31c37ffe937fe93c147b327"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 25 19:31:31 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 25 19:31:31 2010 +0000"
      },
      "message": "THRIFT-683. Remove profanity\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@902941 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ffff2b35763e47667c63df903fe6e59b5ada4d22",
      "tree": "88a954b0aab4f3d4cce5b9ed8d376ad9d3bc95e4",
      "parents": [
        "af81de0123c8d9920a25a27d28da66f9d00748cc"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Sep 01 18:03:07 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Sep 01 18:03:07 2009 +0000"
      },
      "message": "THRIFT-214. cpp: Qualify another cast\n\nr722337 only fixed one occurrence of this issue.\nNot sure why this one hasn\u0027t been a problem before,\nbut it is breaking compilation on Mac OS 10.6.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@810150 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "52687eb3b9aa8982cab5e11fae2ae879c6bc1b69",
      "tree": "7b19bd2e1e4a3eadbc379f9a0d4b4b79b1997123",
      "parents": [
        "9fcacc8ff6e856bd55929763b5026181413806f1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:57 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:57 2009 +0000"
      },
      "message": "THRIFT-469. cpp: Fix a bug in TimerManager::add\n\nThe old code didn\u0027t notify waiters when the inserted task\u0027s timeout\nwas less than the current timeout because it didn\u0027t check the task map\nto find the lowest timeout until after the new task was inserted.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@781630 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9fcacc8ff6e856bd55929763b5026181413806f1",
      "tree": "944af206140c734bdeac2b3107bd075268053c2e",
      "parents": [
        "8584b6ffe799c19e0b843be4ded394934112c01b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:54 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:54 2009 +0000"
      },
      "message": "THRIFT-466. cpp: Make the concurrency library test more thorough\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@781629 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8584b6ffe799c19e0b843be4ded394934112c01b",
      "tree": "b80817e55c47b43b690bb4c3f84ad7341da2036e",
      "parents": [
        "5fa20da4a5a21a90cdf4ee7000c56d254d77f066"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:50 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:50 2009 +0000"
      },
      "message": "THRIFT-465. cpp: Fix some STL misuse in the concurrency library test\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@781628 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5fa20da4a5a21a90cdf4ee7000c56d254d77f066",
      "tree": "fa352ec8f342ce4d8004ed59efae99bee4b63d9e",
      "parents": [
        "840e75205bf4c7da635bd40dd10867073ca1d51e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:47 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:32:47 2009 +0000"
      },
      "message": "THRIFT-464. cpp: Fix some STL misuse in the concurrency library\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@781627 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5105b2e79d21204d13f2351dc6b973061e66b215",
      "tree": "7f1127a8f5198bf94b13fbb05b084c4f79e96136",
      "parents": [
        "2ff956c605561d70a3e9a2748ab44b259234eb7f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:27 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:27 2009 +0000"
      },
      "message": "cpp: Add some missing includes to fix OpenBSD compilation\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776929 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2ff956c605561d70a3e9a2748ab44b259234eb7f",
      "tree": "38ea1a953d188a5867a3ec3c32f0e2fcb54fe51e",
      "parents": [
        "e4ca1795ead89b5ae79557775163bee6b505ffcc"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:23 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:23 2009 +0000"
      },
      "message": "cpp: Fix an OpenBSD compilation bug by moving a typedef\n\nThe typedef was aliasing a private type, which is apparently illegal.\nMoving it into the class definition fixed it.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776928 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e4ca1795ead89b5ae79557775163bee6b505ffcc",
      "tree": "1fa753acfce9e02b101bfa15dc9aa78be2f981e0",
      "parents": [
        "85a8f7b4c22344da3f8e4d259b2cdf591e31d048"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:19 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:19 2009 +0000"
      },
      "message": "cpp: Deal with systems without sched_get_priority_{min,max} (OpenBSD)\n\nAlso make a few tweaks to configure.ac:\n- Check for clock_gettime in librt since it seems to be more\n  widely available.\n- Make it clear which AC_CHECK_FUNCS are optional.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776927 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "be378f232b3b4ea5007a6665d3815a63a10ece65",
      "tree": "0afcc2e213147f41ebaa051caa090c7cb33e02ca",
      "parents": [
        "8db8980fa106d585bad706e503f7d9baa89cf7cb"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 07 00:41:18 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 07 00:41:18 2009 +0000"
      },
      "message": "THRIFT-490. Clarify the comment for the Guard macro\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@772478 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7247b8cfd63147287f613f4af56339db89d879b7",
      "tree": "3d6aa173faf51c3ef6ee4ba1c304a272d04085e2",
      "parents": [
        "e4d4ea0e834ed4d022bb38e53daae4985c04ee04"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 23:05:40 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 23:05:40 2009 +0000"
      },
      "message": "cpp: Fix compiler and library compilation with newer glibc\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@761464 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ea2cba8ba8484a8d4e669c02dd97b3b2445ef322",
      "tree": "6be4a3bf2d069a006c9a15f5ee47a1893a176f4d",
      "parents": [
        "4bc4231040186d9e0c35ff4d8211ce7b7e43aab5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "message": "THRIFT-387. Add license headers to a bunch of files\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@760189 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "13083d6d52d2b5bd3d5a9368a04503c5b21eabab",
      "tree": "dfc912718c5f9dbacfd395d1e5f8dd59e9fd9de6",
      "parents": [
        "afa1b47e60c4ffba554f6187d84fd20cd514f51d"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 20 02:19:46 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 20 02:19:46 2009 +0000"
      },
      "message": "THRIFT-294. Remove @author tags\n\nThey\u0027re gone. Don\u0027t add any new ones!\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@756307 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b5e6221eb5cbabab25d5c9badb7262b15c42cfdd",
      "tree": "b215dc9387b4b9e7cb454e0306fbe66ac0b2d42e",
      "parents": [
        "3fa89e33f3e7e76a2f79546c72d1728492f12bef"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jan 31 22:36:20 2009 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jan 31 22:36:20 2009 +0000"
      },
      "message": "THRIFT-270: change cpp namespaces from facebook::thrift to apache::thrift\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@739644 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fbb14ef1b33db23cb0862975af58bbba957d2378",
      "tree": "ccd152e2b70aa5c54e648eba6b30355f88d15b63",
      "parents": [
        "428d5695ab6dd8a598b1be5bb29cfb7c90aa9414"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Dec 02 02:32:25 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Dec 02 02:32:25 2008 +0000"
      },
      "message": "THRIFT-214. cpp: Qualify a cast to fix OSX compilation\n\nid_t is defined in some OSX header, and the id_t in this function\nresolved to that one instead of Thread::id_t.  This change fully\nqualifies the type to make sure it resolves properly.\n\nAlso remove a comment about eliminating the C-style cast, since it\nis actually quite appropriate in this case.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@722337 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "428d5695ab6dd8a598b1be5bb29cfb7c90aa9414",
      "tree": "b6fe8237a268aee32a16406f7aeb027b08479546",
      "parents": [
        "0c87ad41ee8dc669f8e1cbe0b17f8382844a0497"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Dec 02 02:22:01 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Dec 02 02:22:01 2008 +0000"
      },
      "message": "THRIFT-215. cpp: Disable an assertion that fails on various platforms\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@722336 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "53f18f01bea79d373d0bb1138b67c03e42f4143c",
      "tree": "6b4445e45da6575046dde340ee010d4abb5f3cd5",
      "parents": [
        "615da249957987b39887eb12abe887ad6c883114"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jul 11 00:45:29 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jul 11 00:45:29 2008 +0000"
      },
      "message": "(THRIFT-69) Fix Util::currentTime for use in applications.\n\nThis function didn\u0027t work properly when used outside of the Thrift library\nbecause config.h isn\u0027t available.  This patch fixes the issue by moving\nthe function definition into the library.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@675819 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fb1c5ace0afa13d91d744080abd2dac1fbaf2911",
      "tree": "9020ffe4be322ab09efc0c88b81771680fbe48ec",
      "parents": [
        "a4d7eef5cd5e946f30c386e1f4fe790f6d5574ad"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:28 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:28 2008 +0000"
      },
      "message": "Declare special mutex initializers unconditionally.\n\nWe don\u0027t want to include pthread.h in Mutex.h, so we can\u0027t detect whether\nthe non-portable mutex initializers are defined.  Instead, we just declare\nthem unconditionally and only define them if they are available.\nUnfortunately, this means that users will get a link error instead of a\ncompile error if they try to use them when they are not available.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666495 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c6dab613003c704f072542f39214f7af64fc0412",
      "tree": "6cf0c32408e229af01a44f79023d29747ba6fde7",
      "parents": [
        "e3a64923e9620ebf99ff51ed5bfcb366e503c79e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:13 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:13 2008 +0000"
      },
      "message": "Thrift: Allow for alternative Mutex initializers.\n\nSummary:\nAdd an argument to the Mutex constructor.\nIt takes a pointer to a function that initializes the internal pthread_mutex_t.\nWe provide initializers for default pthread_mutex_t (which is our default),\nadaptive mutexes, and recursive mutexes.\n\nReviewed By: hzhao, psaab, mcslee\n\nTest Plan: Built libthrift.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666362 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e3a64923e9620ebf99ff51ed5bfcb366e503c79e",
      "tree": "2d7212edec32b8f46d3451ed6a0dc8c3fa5173f8",
      "parents": [
        "791a57f528e12829acd6d2950d50e65139080f49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:04 2008 +0000"
      },
      "message": "Fix locking bug in ThreadManager.\n\nIt looks like the scheduler waits on monitor_, but the worker notifies\nworkerMonitor_. Also, it does so out of critical section.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666361 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "791a57f528e12829acd6d2950d50e65139080f49",
      "tree": "b675279ceb1ff2397453e38b573b8e49bea4ba03",
      "parents": [
        "665365490f3e14cf3e40205f16d9dc9b5a833f1e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:56 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:56 2008 +0000"
      },
      "message": "FunctionRunner Utility Class.\n\nRuns arbitrary functions of form \u0027void(void)\u0027 and \u0027void*(void*)\u0027\nwithout need to create custom Runnable classes.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666360 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "af296954ea59369129b4129633e263fd65b503de",
      "tree": "b70c053a513508b8b8708d37622c79260744d2fc",
      "parents": [
        "c89e4de50947b91b658a952da4671033e333c9df"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:40 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:40 2008 +0000"
      },
      "message": "Add ProfilerRegisterThead() to PosixThread.\n\nAdds an #ifdef\u0027d block that calls ProfilerRegisterThread() if\n\"REGISTER_THREAD_GOOGLE_PERFTOOLS\" is set.  Apparently, this makes the\nGoogle perftools CPU profiler work much better on x86-64.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666358 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "631dcb42d1be0896c14e7830a45a5db4e3ee5ef6",
      "tree": "acb419cc4700851be4ba223068c6aea7a076b512",
      "parents": [
        "6987535d65529be108f36a51f8a603d675c89e16"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 05 07:51:40 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 05 07:51:40 2008 +0000"
      },
      "message": "Thrift: concurrency/Util.h: Add converters for \u0027struct timeval\u0027, cleanup\n\nSummary: - Added \u0027struct timeval\u0027 toMilliseconds and toTimeval converters modeled on the timespec ones\n         - Added constants for microsecs, and got rid of the 500000 and 500 magic #\u0027s :)\n\nReviewed By: dreiss\n\nTest Plan: works in my test env\n\nRevert: OK\n\nDiffCamp Revision: 8742\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665554 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a8de4895f61196d6bf139c3becbad5800b977e1c",
      "tree": "f72134854794ffffcc3de95164dee0705b54c650",
      "parents": [
        "3c5d2fd9a87f3bdb07aac7afa2c50e5e90d88fa8"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Sat Feb 09 00:02:26 2008 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Sat Feb 09 00:02:26 2008 +0000"
      },
      "message": "Patch from Ross McFarland to compile with strict warnings\n\nSummary: Use comment trick in params that are unused to prevent warnings\n\nReviewed By: dreiss\n\nTest Plan: Generate C++ code and compile -W -Wall\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665469 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0c90f6f8af1d64ec9272bb2f6092336f3d0b8df8",
      "tree": "15245f459a76acc769d8fe99179176b4965bf66d",
      "parents": [
        "3160971286aea0d5b28d5a7a87acaa8a12209ef8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 06 22:18:40 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 06 22:18:40 2008 +0000"
      },
      "message": "Thrift: Whitespace cleanup.\n\nSummary:\n- Expanded tabs to spaces where spaces were the norm.\n- Deleted almost all trailing whitespace.\n- Added newlines to the ends of a few files.\n- Ran dos2unix on one file or two.\n\nReviewed By: mcslee\n\nTest Plan: git diff -b\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665467 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4b6ff2dabcc67b437f9fb9e6930cb4705bd936df",
      "tree": "69506044310a25eca841ac4ddfac9088bcd2d171",
      "parents": [
        "f845b7d3e097097446067b3a0bc96c6dc85008ca"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Tue Dec 25 22:58:50 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Tue Dec 25 22:58:50 2007 +0000"
      },
      "message": "-- Allow ThreadPoolManager tp return immediately from addTask\n\nSummary:\n- it should be possible to specify a zero timeout if the pendingTaskQueue\n  is already full\n\nReviewed By: marc\n\nTest Plan:\n- Tested in search\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665406 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eaa61e43630c68ee2e98f7b649047e45c524f9d8",
      "tree": "c0aac25d067e39e31e0f5e6bcbb5b9ca378e7356",
      "parents": [
        "97264864df4e7c14d8a4323af6ad37e726c52ef9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Dec 20 21:42:05 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Dec 20 21:42:05 2007 +0000"
      },
      "message": "Thrift: A hack to prevent incorrect usage of Mutex Guards.\n\nReviewed By: boz\n\nTest Plan:\ndreiss@dreiss-vmware:safe_concurrency:thrift/test$ nl -ba guard_test.cc\n     1  #include \"../lib/cpp/src/concurrency/Mutex.h\"\n     2  using facebook::thrift::concurrency::Guard;\n     3  void test() {\n     4    facebook::thrift::concurrency::Mutex m;\n     5    Guard(m);\n     6    Guard g1(m);\n     7\n     8    facebook::thrift::concurrency::ReadWriteMutex rwm;\n     9    facebook::thrift::concurrency::RWGuard(m);\n    10    facebook::thrift::concurrency::RWGuard g2(rwm);\n    11  }\ndreiss@dreiss-vmware:safe_concurrency:thrift/test$ g++ -c guard_test.cc\nguard_test.cc: In function ‘void test()’:\nguard_test.cc:5: error: ‘incorrect_use_of_Guard’ was not declared in this scope\nguard_test.cc:9: error: ‘incorrect_use_of_RWGuard’ is not a member of ‘facebook::thrift::concurrency’\ndreiss@dreiss-vmware:safe_concurrency:thrift/test$\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665402 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "145429602687d1785c485bcd1ea9dcd83f28bda4",
      "tree": "ab61887bb062628587ca928e29bfd33693ff9d15",
      "parents": [
        "73e3dd7d5fdd30301816982d2cd6a961380538ac"
      ],
      "author": {
        "name": "yunfang",
        "email": "dev-null@apache.org",
        "time": "Wed Oct 03 22:59:41 2007 +0000"
      },
      "committer": {
        "name": "yunfang",
        "email": "dev-null@apache.org",
        "time": "Wed Oct 03 22:59:41 2007 +0000"
      },
      "message": "[Explicitly declare shared_ptr]\nSummary:\njust some simple styling changes. moving  using boost::shared_ptr to .cpp\n  and using the full path name in .h\nReviewed by: boz, dreiss\nTest Plan: compiled and tested on the adfinder\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665289 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "19cee90ca41922a4437d547a2298201359bbcdcc",
      "tree": "b39d2712ba039decb838237549fdb846432e0b63",
      "parents": [
        "623096780fa745658e6336390c8e45bfd1f28d24"
      ],
      "author": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Sat Sep 22 23:08:11 2007 +0000"
      },
      "committer": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Sat Sep 22 23:08:11 2007 +0000"
      },
      "message": "THRIFT: Make the mutex assignable\n\nSummary: we need to use a shared_ptr instead of an old fashioned one if we\u0027re\ngoing to stick with this PIMPL model\n\nReviewed By: dreiss, marc\n\nTest Plan: test program didn\u0027t fail or leak memory, foreman (fb303 client)\nworked without problem\n\nRevert Plan: just make sure you find some other solution to this problem\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665280 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "623096780fa745658e6336390c8e45bfd1f28d24",
      "tree": "bf9bd7b0ccf89b632afccff4b1f69c2b060d4724",
      "parents": [
        "aa3c5a882c747a7686fc3dac8f7a5572cc55cdfd"
      ],
      "author": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Thu Sep 20 23:24:16 2007 +0000"
      },
      "committer": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Thu Sep 20 23:24:16 2007 +0000"
      },
      "message": "THRIFT: Mutex and ReadWriteMutex leaked memory, now they don\u0027t\n\nSummary: also added myself to CONTRIBUTORS.\n\nReviewed By: marc\n\nTest Plan: the following program no longer leaks memory (valgrind):\n\nint main(int argc, char **argv){\n  Mutex mu;\n  mu.lock();\n  mu.unlock();\n}\n\nRevert Plan: ok\n\nNotes: this is kind of important\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665279 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d4a269cdb5ecf62e91384e33cdb6bf887f69e9a9",
      "tree": "013cc9892421f3738e9cda3be933ee12c1f08d53",
      "parents": [
        "402ee28f87dd855d8825182b79617891a7ac4b93"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Aug 23 02:37:19 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Aug 23 02:37:19 2007 +0000"
      },
      "message": "Thrift: No using namespace.\n\nSummary:\nusing namespace XXX; is tricky because it imports a lot of crap into your namespace.\nAlso, if we ever decide to remove boost as a dependency, \"using namespace boost\"\nmakes it harder.\n\nThis patch removes all using namesapce XXX; with one or more using XXX::YYY;\nThere are some exceptions, such as test, tutorial, namespace std, and\nfacebook namespaces.\n\nReviewed By: mcslee\n\nTest Plan:\nRecompiled thrift.\ngrep --binary-files\u003dwithout-match -r \u0027using namespace\u0027 . | \\\n  egrep -v \u0027^[^:]*: *using namespace (std;$|facebook)\u0027 | \\\n  grep -v \u0027\u003c\u003c endl\u0027 | \\\n  grep -v \u0027[^:]*/tutorial/\u0027 | \\\n  grep -v \u0027^./test/\u0027\n\nRevert Plan: ok\n\nNotes: I wouldn\u0027t bother, but it is fixathon.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665218 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "98439158db96e682467f87b0d6533896db9ae72a",
      "tree": "484ed060d6336ed30e7a36715b53a1b45a23d35f",
      "parents": [
        "04f0b7b21b4902f356809fced858de8d00bae1b6"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Aug 21 02:39:40 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Aug 21 02:39:40 2007 +0000"
      },
      "message": "Fix thread_t cast again\n\nSummary: reinterpret_cast actually breaks on linux, despite working on FreeBSD\n\nReviewed By: dreiss\n\nTest Plan: Compile on Linux OR FreeBSD\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665211 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "04f0b7b21b4902f356809fced858de8d00bae1b6",
      "tree": "c901a6dd7cf587e1ed0561ad917ebe5bb25eda28",
      "parents": [
        "1ec47d4395be54319598aa5cd74ee8d44246b335"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Aug 21 01:54:36 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Aug 21 01:54:36 2007 +0000"
      },
      "message": "Use reinterpret_cast instead of static_cast for pthread_t \u003d\u003e Thread::id_t\n\nSummary: On FreeBSD pthread_t is a pthread*, not uint64_t, so static_cast gest upset\n\nReviewed By: dreiss\n\nTest Plan: Compile on FreeBSD\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665210 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5362e70f8f3c58f0f1fc67ea0a8fc299c554e1bc",
      "tree": "c16926b192819343292fd79e6663b25ff5a3218c",
      "parents": [
        "3429b6a9a046bbc4bd6e476467aca89ce7317cc2"
      ],
      "author": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Wed Aug 15 20:55:36 2007 +0000"
      },
      "committer": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Wed Aug 15 20:55:36 2007 +0000"
      },
      "message": "THRIFT: mutex trylock support\n\nSummary: add trylock support to the Mutex class\n\nReviewed By: mcslee\n\nTest Plan: added trylock mutexes to foreman, walked through them in gdb\n(behaved correctly) and then ran an entire sweep (behaved correctly)\n\nNotes: slee ftw\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665204 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "17496a04d61a5ed0dbece2d5067135871a526da4",
      "tree": "1b6cfd3beaccd12b1b57bcfe4739c6c56b63d8a9",
      "parents": [
        "80cdca7344fba98dcda6bcc694a1419cb2dc60a6"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Aug 02 06:37:40 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Aug 02 06:37:40 2007 +0000"
      },
      "message": "Typo and comment fix\n\nReviewed By: marc\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665189 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "80cdca7344fba98dcda6bcc694a1419cb2dc60a6",
      "tree": "d4fabd5b684072b6d7d8160634a34ba79383cbc7",
      "parents": [
        "c3c6c0c9c4dc77c6b2b7dce952eeb2fe69513a40"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Thu Aug 02 06:26:11 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Thu Aug 02 06:26:11 2007 +0000"
      },
      "message": "-- fix memory leak in TThreadedServer\n\nSummary:\n- need detached\u003dtrue\n\nReviewed By: mcslee\n\nTest Plan: replayable test case\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665188 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "96d2388ade7af4f23d2c95b92496b79ec0321133",
      "tree": "fb9840256a746c1b3889b25ddd8131955265ec60",
      "parents": [
        "5f5fdf3a20f2459eabbee771e6eff4159c6f2bca"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 26 21:10:32 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 26 21:10:32 2007 +0000"
      },
      "message": "Thrift: Cleaned up whitespace.\n\nSummary:\nReplaced a lot of tabs with spaces in the thrift codebase.\nRemoved a lot of trailing whitespace from thrift-generated c++.\nAdded a few things to cleanup.sh.\n\nTrac Bug: #\n\nBlame Rev:\n\nReviewed By: mcslee\n\nTest Plan:\nRecompiled thrift.\nRe-thrifted some test .thrifts.\nCompiled the genrated c++.\nRan cleanup.sh.\n\nRevert Plan: ok\n\nNotes:\n\nEImportant:\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665176 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a36f5db4b323adbcd13cd298ab73eee2be6200f2",
      "tree": "64cf754afe6c383e34e08570887c8f62e64269e4",
      "parents": [
        "b1ad0141d4df4b4488882880a6d9d4aa84f3b178"
      ],
      "author": {
        "name": "yunfang",
        "email": "dev-null@apache.org",
        "time": "Sat Jul 14 01:23:05 2007 +0000"
      },
      "committer": {
        "name": "yunfang",
        "email": "dev-null@apache.org",
        "time": "Sat Jul 14 01:23:05 2007 +0000"
      },
      "message": "[scope lock wrapped for ReadWriteMutex]\nSummary:\n  scope lock wrapped around ReadWriteMutex. It\u0027s like Guard but you can specify to use it as a read or write lock.\n\nReviewed by: boz\n\nTest Plan: used it in AdFinder\n\nRevertible: yes\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665162 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "85287d3989359231026807bac52364cbe49b8d84",
      "tree": "ac944a48f83ef03133f20f61b38377ac5522baae",
      "parents": [
        "e6c4fa671e63f9bfcc443d3fb5802e886f237c9a"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Jul 09 19:50:30 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Jul 09 19:50:30 2007 +0000"
      },
      "message": "Fix addrinfo structure memory leak in TSocket\n\nSummary: Need to free the IPv6 memory structure\n\nReviewed By: mcslee\n\nNotes: Submitted by paul@powerset.com\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665157 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cce8184d997b37a2da1b885125b43bcda103fa76",
      "tree": "556497122de3691d3446023a7960a4df4d7104bc",
      "parents": [
        "22974602532c9d1e1dacb5d0f873667a237b0981"
      ],
      "author": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Fri Jul 06 22:27:52 2007 +0000"
      },
      "committer": {
        "name": "boz",
        "email": "dev-null@apache.org",
        "time": "Fri Jul 06 22:27:52 2007 +0000"
      },
      "message": "THRIFT ReadWriteMutex\n\nSummary: Implemented a read/write lock class in thrift::concurrency\n\nReviewed By: marc\n\nTest Plan: I compiled this, then compiled a version of fb303 that uses this\n(future checkin pending further tests), then ran a binary using the new fb303\nand it didn\u0027t crash as things were added to the map using the ReadWriteMutex\n\nRevert Plan: yup\n\nNotes: this should replace rw_lock.h for most clients\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665154 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a647903dd2edaa8cf846fe9dac4df82cf74740a0",
      "tree": "a844a1aa23e630d62c2e918cbd55ef96cc019caa",
      "parents": [
        "67606e5d7207874d003bc9ba433edd66d74662f0"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue Jun 05 22:20:14 2007 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue Jun 05 22:20:14 2007 +0000"
      },
      "message": "Modified PosixThreadFactory\n        Added explicit detached getter and setter\nModified PosixThreadFactory::~PThread:\n        Check for join failing and don\u0027t transition to detached_ state if it does.  Potential thread-handle leak for\n        threads created joinable who aren\u0027t referenced by any external thread.  Solution for now has to be\n        \"DONT DO THAT\", the clever approach doesn\u0027t always work.\n\nAdded ThreadFactoryTests.floodNThreads:\n        Loop M times for N threads where M x N is bigger than 32K to verify that detached threads can be created\n        ad infinitum.\n\nReviewed By: mcslee\n\nRevert Plan: revertible\n\nTest Plan: concurrency_test thread-factory passes\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665130 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "67606e5d7207874d003bc9ba433edd66d74662f0",
      "tree": "e0c1d491867848f528ed6696c5df251f200be635",
      "parents": [
        "5e707a6cd9aa9c3de9b3eddb83307a8268449f58"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Mon Jun 04 21:01:19 2007 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Mon Jun 04 21:01:19 2007 +0000"
      },
      "message": "Modified PosixThreadFactory::PThread:\n        Pay attention to detached flags.  If thread is create non-detached and has not been joined when all references are given up,\n        (ie boost::share_ptr calls ~PThread) do the join in the destructor to prevent thread ids from being leaked.\n\nModified ThreadFactoryTests.reapNThreads:\n        Loop M times for M threads where M x N is bigger than 32K to verify that thread ids aren\u0027t leaked\n\nModified TimerManager.cpp:\n        Removed debug messages.\n\nReviewed By: mcslee\n\nRevert Plan: revertible\n\nTest Plan: concurrency_test thread-factory passes\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665129 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9b82d275c627b1f4f64b5d3c82d54422fe6b5d5a",
      "tree": "7daf5768bc2619697e08b8e681cd72b52af409c6",
      "parents": [
        "2782d6d205344fc6b02f30c674812bd91bcff2a1"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed May 23 05:16:07 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed May 23 05:16:07 2007 +0000"
      },
      "message": "Get the long longs out of the Thrift codebase\n\nSummary: Replace with int64_t and don\u0027t worry about what architecture machine you\u0027re on, the typedefed int64_t will do the right thing.\n\nReviewed By: aditya, marc\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665123 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2782d6d205344fc6b02f30c674812bd91bcff2a1",
      "tree": "3482e36f4175673a3594e0e55d82da20a12beafb",
      "parents": [
        "e04475b5aaa2bba920a2c1b4021a1a447f947dd9"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed May 23 04:55:30 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed May 23 04:55:30 2007 +0000"
      },
      "message": "mcslee: being nitpicky ensuring consistent coding style\n\nSummary: no tabs, conditionals with spaces around them, etc\n\nReviewed By: thrift style rules\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665122 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e04475b5aaa2bba920a2c1b4021a1a447f947dd9",
      "tree": "3d1a40d17e951eb8ee56748ba955873beb8a08e3",
      "parents": [
        "3a3b53bc6eefa91ea60e5da2b2c91519ca1d9b2e"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Wed May 23 02:14:58 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Wed May 23 02:14:58 2007 +0000"
      },
      "message": "-- fix read timeout handling in TSocket\n\nSummary:\n- turns out that EAGAIN can be returned both when there is a transmission timeout and when there\n  is a lack of system resources.\n\nThis diff has a hacky fix for respecting a user specified read timeout.\n\nReviewed By: Steve Grimm, Marc, Slee\n\nTest Plan:\n- Tested by trying to crash an srp machine\n\nRevert Plan: No.\n\nNotes:\n- Also added functionality to allow users to specify the max number of recv retries (in the case\n  when EAGAIN is returned due to a lack of system resources)\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665121 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3a3b53bc6eefa91ea60e5da2b2c91519ca1d9b2e",
      "tree": "9bd43f88b0e1cb8959dbacc90a7d9babf16e10b3",
      "parents": [
        "f4f18ec514d42cec7a1368242015db1c3ad9da29"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue May 22 23:59:54 2007 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue May 22 23:59:54 2007 +0000"
      },
      "message": "Modified facebook::thrift::concurrency::Monitor.wait:\n        Throw TimedOutException on wait timeout so caller can distinguish between timeout and event.\n\nModified facebook::thrift::concurrency::PthreadThread.start:\n        Throw SystemrResourceException on any pthread_* function call failure rather than asserting 0.\n\nAdded facebook::thrift::concurrency::Thread.id() and  facebook::thrift::concurrency::ThreadFactory.currentThreadId():\n        Return thread-id of thread and current thread respectively.  Needed for reentrancy tests in ThreadManager\n\nAdded facebook::thrift::concurrency::ThreadManager.pendingTaskCountMaxN\nModified facebook::thrift::concurrency::ThreadManager.add():\n        Now support a maximum pending task count and block if the current pending task count is max.\n        If timeout is specified for add, TimedOutException is thrown if pending task count doesn\u0027t decrease\n        in the timeout interval.  If add() is called by a ThreadManager worker thread and the task cannot\n        be added, a TooManyPendingTasksException is thrown rather than blocking, since deadlocks can ensue\n        if worker threads block waiting for works threads to complete tasks.\n\nReviewed By: mcslee, aditya\n\nRevert Plan: revertible\n\nTest Plan: concurrency/test/ThreadManagerTests.h\n           run concurrency-test thread-manager\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665120 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b6b5a9e001071b781a2bd826770ad56165dc08e4",
      "tree": "7b817341a512a2814e4cda0f0687e39875e310f7",
      "parents": [
        "10b3bdbb853519b922a0b18ca9f384167b82d035"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sun Apr 01 20:17:02 2007 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sun Apr 01 20:17:02 2007 +0000"
      },
      "message": "Removed comment about needing a lock in thread main.  Access through boost::shared_ptr is thread safe\n\nReviewed By: none\n\nTest Plan: N.A.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665076 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3f234dad0ed5e5eb629e5eaf451672366ce1f89e",
      "tree": "57d28c29b8c2994c28a18cfb2dce6a14bbf22da6",
      "parents": [
        "9dc57402b5297a14a53f47658e72fcdab7e99f72"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Sun Apr 01 01:19:57 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Sun Apr 01 01:19:57 2007 +0000"
      },
      "message": "-- more assert fixes for thrift concurrency\n\nReviewed By: mcslee\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665074 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9dc57402b5297a14a53f47658e72fcdab7e99f72",
      "tree": "f1c88340c5b92ba0efd2e76ce719b14a3f77b394",
      "parents": [
        "adf3e7f0c6127967ab546b8a460131c07de84b2d"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Sat Mar 31 17:45:12 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Sat Mar 31 17:45:12 2007 +0000"
      },
      "message": "-- assert fixes for thrift concurrency lib\n\nSummary:\n- cannot assume that assert.h is defined\n\nReviewed By: marc k\n\nTest Plan: everything compiles\n\nNotes:\n- need to reflect these changes in libfacebook/fbthread\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665073 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5ea15f9e3206a4bb903f77d149b9cb8c1c2a392e",
      "tree": "82e645c266f38ccb080e60935fd49c8def6ec3d2",
      "parents": [
        "5d06feab210f1175bc95d2ea435fd59a82b76024"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Mar 05 22:55:59 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Mar 05 22:55:59 2007 +0000"
      },
      "message": "Get rid of all the using namespace and using boost:: declarations in Thrift header files\n\nSummary: To remove upstream dependencies. Still keeping some specific using directives around.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665047 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6e3f637bab9bb19621382047d413100fe6c44e0a",
      "tree": "8d4be56d3acda015ed1a6bf120f649cac8aac1f9",
      "parents": [
        "7c10eaf35c200b46e26b9165be088b6a5d7dd791"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 22:05:46 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 22:05:46 2007 +0000"
      },
      "message": "Proper shutdown functionality for Thrift servers\n\nReviewed By: karl\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665038 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7c10eaf35c200b46e26b9165be088b6a5d7dd791",
      "tree": "0188a1742791e0e19337c516a809fd4a4f341d28",
      "parents": [
        "adde9687c6b09af70a65c88764fd1ee3422d9163"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 02:45:10 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 02:45:10 2007 +0000"
      },
      "message": "Add join to the ThreadManager\n\nSummary: Now you can join against all the threads in a ThreadManager\n\nReviewed By: marc, xp-style\n\nTest Plan: Use with new ThriftServer shutdown mechanisms\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665037 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9f0c65153c6c0100071029c27b20db62bf98ffa4",
      "tree": "7c71be2e652730d5374daa5243e5406d7b7b5b1e",
      "parents": [
        "57cc25e2a348bd8fe844b39321207226181e62c3"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Feb 28 23:58:26 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Feb 28 23:58:26 2007 +0000"
      },
      "message": "Thrift license applied to all the C++ files\n\nReviewed By: bash\n\nNotes: marc says $*, corson says \"$@\"\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665030 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fdef47ea2bbb1802deee4f10407c40cd32c42d52",
      "tree": "d75339d1b970d3dde08d5b57354a154bb907b178",
      "parents": [
        "6a47fed5feef44de4c5505fff21126f09ec02c6e"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Wed Feb 07 03:54:18 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Wed Feb 07 03:54:18 2007 +0000"
      },
      "message": "-- Servers should not crash on accept.\n\nSummary:\n- Continue running if there is an accept issue\n\nReviewed By: slee\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664988 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8cbda85be56cf03bb8d0c1a84d200ea04173f4aa",
      "tree": "66b7cf006b9e41ff781d7c47bb3aa74ed1e5ba68",
      "parents": [
        "739dbe55aee3baa81a3678fbb307b4e70d6caea8"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Feb 01 23:05:38 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Feb 01 23:05:38 2007 +0000"
      },
      "message": "Prevent direct instantation of ThreadManager\n\nReviewed By: marc\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664967 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b9ff32ae30af5a667efa7d1d3b39687d5758c742",
      "tree": "8bd5642b6dacf12f4921703a5602dff272da25bc",
      "parents": [
        "588e452bc496c1c9ef3730fce15b1c9796d64c48"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Nov 16 01:00:24 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Nov 16 01:00:24 2006 +0000"
      },
      "message": "Thrift: C++ peek() method and TException not Exception\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664876 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b3bd81f4791374c347c102e2f2133841c3fafa63",
      "tree": "2eeb6d272031182b94341318b29bbe5d4db8bbc9",
      "parents": [
        "83303e1cf7157e5c9862feacf3994782c1540eff"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Oct 25 01:36:44 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Oct 25 01:36:44 2006 +0000"
      },
      "message": "Change Thrift .cc files to be .cpp files\n\nSummary: CPP R00lz, CC Drewlz\n\nReviewed By: aditya\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664837 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2f6404d9ae0e5e2b813a2cedcf96edc5c643784f",
      "tree": "507665d1e291c9843edcea8e09a500cccda57209",
      "parents": [
        "96a6bbec1a69292baec6e47c05225eff095b9b0d"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 10 01:37:40 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 10 01:37:40 2006 +0000"
      },
      "message": "C++ Thrift coding style changes\n\nSummary: Make underscore for class members consistent\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664818 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2905078d167144a5405119f14d4ce96fa6d0ae42",
      "tree": "bd4fc6ceb192eae203a265fea8f0cd6efca79e54",
      "parents": [
        "29f5f67e1fafdd9ef263b59f2d93c347d2209c44"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Fri Sep 29 00:12:30 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Fri Sep 29 00:12:30 2006 +0000"
      },
      "message": "Better socket timeout and options support for Thrift C++\n\nSummary: Also compile without degugging symbols for the linked library\n\nReviewed By: aditya\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664810 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f5f2be46a3d7c13daf6e47f0962a2e64363d825c",
      "tree": "170b85efefa0cfac0799cc7ec9f8b87e44189480",
      "parents": [
        "c9676569adfba12a1378eec1c75c6036e7912d9e"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Sep 05 21:05:31 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Sep 05 21:05:31 2006 +0000"
      },
      "message": "Thrift: standardize coding style\n\nSummary: Standardize indentation, spacing, #defines etc.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664784 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e6889de36f2be33d398e15802151690e25be24f0",
      "tree": "598b62bd198a5adc685ea58971da28712c416589",
      "parents": [
        "91f674823a80031962265f559c9b3d3ef5bcb1df"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sat Aug 12 00:32:53 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sat Aug 12 00:32:53 2006 +0000"
      },
      "message": "Fixed a few typos - test client and server samples now working with new code generation\n\n\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664753 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d42a2c2bf9630cfb4d9d49cbee1fc812e5e5777d",
      "tree": "5c35f3d18b7aa84bf12cf13d187c9c33ee42954d",
      "parents": [
        "c4eb9e8889105547a693f038d6f71de54e8f57d3"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Aug 10 03:30:18 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Aug 10 03:30:18 2006 +0000"
      },
      "message": "Rationalized include-directory schema\n\n\n\t\t\t       \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664747 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6f038a7b60337c6b00ff7685db9ad4d527b68e62",
      "tree": "9302a705f2cb05a4e262652719b696214ba308ec",
      "parents": [
        "03eafbeac934f6dd52bfb7c10193b6a6d02d8630"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Aug 03 18:58:09 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Aug 03 18:58:09 2006 +0000"
      },
      "message": "Converted concurrency classes to use boost::shared_ptr and boost::weak_ptr:\n\nWrapped all thrift code in facebook::thrift:: namespace\n\n\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664735 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c778297bd0e4f468967df59555c2d3dcaf4fc6cb",
      "tree": "ac5bfae082ee79e17262d7c8911e585345611ff6",
      "parents": [
        "e03da189af92cbc3269ebe7f818cdf0a5a4728f6"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue Jul 25 02:26:35 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Tue Jul 25 02:26:35 2006 +0000"
      },
      "message": "autoconf/automake/libtool-ized thrift cpp bits:\n    Fixed to build on solaris.\n    Used clock_gettime() where available\n    Fixed rounding of time to ms\n\n\t\t\t       \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664733 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9d4a3e2a78be150513a88eb8870d9a7696acf0e9",
      "tree": "05784765e08adf2f7756afee36cb2412c09b7094",
      "parents": [
        "9f0ba255a9b9925dcd6e901be4ecd6b5b761830b"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Fri Jul 21 19:53:48 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Fri Jul 21 19:53:48 2006 +0000"
      },
      "message": "autoconf/automake/libtool-ized thrift cpp bits:\n    Moved the original Makefile \u003d\u003e Makefile.slee\n\n\t\t\t       \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664731 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9f0ba255a9b9925dcd6e901be4ecd6b5b761830b",
      "tree": "c85ddbf5ee5f7dadc1aa0a2f405c98df14936063",
      "parents": [
        "fe5ba12e4a014935defac0464def9ad1986ad572"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Fri Jul 21 03:53:13 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Fri Jul 21 03:53:13 2006 +0000"
      },
      "message": "autoconf/automake line noise for linux/osx builds\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664730 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fe5ba12e4a014935defac0464def9ad1986ad572",
      "tree": "6a54f5adaa4b1249bb81b653874bbaac895667d5",
      "parents": [
        "03dedd9bd5125358d6fb21cff1b059cfe53fc984"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 21:16:27 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 21:16:27 2006 +0000"
      },
      "message": "More test code added...\n     more bugs found\n\nfacebook::thrift::concurrency::ThreadManager::add\n\tFixed dispatch error that resulted in only one of N worker threads ever getting notified of work\n\nfacebook::thrift::concurrency::ThreadManager\n\tCleaned up addWorker/removeWorker and stop logic so that adding/removing workers doesn\u0027t wake up \n\tall blocked workers.\n\nfacebook::thrift::concurrency::Thread\nfacebook::thrift::concurrency::Runnable\n\tFixed initialization logic so that runnable can return the thread that runs it\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664729 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "03dedd9bd5125358d6fb21cff1b059cfe53fc984",
      "tree": "c1880f9e1ae20015f6ea5058aaf0078ed5b8534a",
      "parents": [
        "740343dad2583899a2e3751fcf568c1cc9254d48"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:58:47 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:58:47 2006 +0000"
      },
      "message": "Fixed a few problems found on linux x86_64 version\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664728 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "740343dad2583899a2e3751fcf568c1cc9254d48",
      "tree": "0baacf8b4df578e323315f601ef0696ce0895f88",
      "parents": [
        "525c202df48b8154c0a8b6b8d86ee825e9ae8944"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:31:02 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:31:02 2006 +0000"
      },
      "message": "Forgot this one\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664727 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "525c202df48b8154c0a8b6b8d86ee825e9ae8944",
      "tree": "13ab0b2110622a5054e4a988617892ef061e00da",
      "parents": [
        "d466b211fdf0c357e5b29fba70099947bc493164"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:29:35 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:29:35 2006 +0000"
      },
      "message": "Forgot this one\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664726 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d466b211fdf0c357e5b29fba70099947bc493164",
      "tree": "8620665cd5ff483a3c04b09de1d6329221e65a53",
      "parents": [
        "9f27a4eb7d329f80a7143b1850655f1c59bf4f46"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:04:18 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Thu Jul 20 00:04:18 2006 +0000"
      },
      "message": "Bring up of thread manager\n\nfacebook::thrift::concurrency::test.ThreadManagerTest::test00\n\tLaunch N tasks that block for time T, verify they all complete and that the thread manager cleans up properly\n\twhen it goes out of scope\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664725 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9f27a4eb7d329f80a7143b1850655f1c59bf4f46",
      "tree": "1eb2aa81bd253f9aa9a199de7dc1833bad4b54d1",
      "parents": [
        "8a40a76b271f376a45202d1569d819d12f3940cd"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Wed Jul 19 20:02:22 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Wed Jul 19 20:02:22 2006 +0000"
      },
      "message": "More bullet proofing of timer manager\n\nfacebook::thrift::concurrency::TimerManager::stop\n\tAdded proper cleanup of unprocessed tasks and shutdown of dispatcher thread to stop\n\nfacebook::thrift::concurrency::TimerManager::~TimerManager\n\tCall stop if manager wasn\u0027t explicitly stopped\n\nfacebook::thrift::concurrency::test.TimerManagerTest\n\tCalculate error margin for timeout expiration and verify it\u0027s within bounds\n\tVerify manager stops properly when it goes out of scope\n\t\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664724 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8a40a76b271f376a45202d1569d819d12f3940cd",
      "tree": "332bbd712a1bb4e5b9446347378d756e5427e038",
      "parents": [
        "0e53ccdb8bf0cee0d17fed331d32dd012cec2552"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Wed Jul 19 17:46:50 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Wed Jul 19 17:46:50 2006 +0000"
      },
      "message": "Added thread factory test - problems in thread\n\nFixed stupid typo in  TimerManager::start\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664723 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0e53ccdb8bf0cee0d17fed331d32dd012cec2552",
      "tree": "32da173d437a7074270fe84aaa2858964d571a56",
      "parents": [
        "66949879ffaa724ff2789bd62a2b8820bf45f13f"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Mon Jul 17 23:51:05 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Mon Jul 17 23:51:05 2006 +0000"
      },
      "message": "Another checkpoint of initial cut at thread pool manager for thrift and related concurrency classes.\n\nAdded TimerManager -  I can\u0027t live without one after all.\n\nAdded Util - handy place for common time operations et al.\n\nInitial test code\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664722 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "66949879ffaa724ff2789bd62a2b8820bf45f13f",
      "tree": "295191a3789875dbba0881146c15f3d8a01c5586",
      "parents": [
        "6e53644ce5ebbf5e3a5f1fb3df2398534b1c965e"
      ],
      "author": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sat Jul 15 01:52:39 2006 +0000"
      },
      "committer": {
        "name": "Marc Slemko",
        "email": "marc@apache.org",
        "time": "Sat Jul 15 01:52:39 2006 +0000"
      },
      "message": "Checkpoint of initial cut at thread pool manager for thrift and related concurrency classes.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664721 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ]
}
