)]}'
{
  "log": [
    {
      "commit": "eee98bede4e9934a0cdd32fcffcd0cc659b4d09a",
      "tree": "8198a0dbfc88c65db98fddf9a8a8872307435290",
      "parents": [
        "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "message": "cpp: Disable IPV6_V6ONLY only if the socket is an AF_INET6 socket\n\nSome systems may disable IPV6 completely.  Ensure that we only disable\nIPV6_V6ONLY if the socket is AF_INET6\n\nNo longer see the warning:\n\nThrift: Wed Jul 22 18:08:36 2009 TServerSocket::listen() IPV6_V6ONLY Protocol not available\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920683 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0",
      "tree": "36ed0ff4d1a5a098f89eaeaf5571fe884e8cffd6",
      "parents": [
        "7a2065d3dbdf361bbbe8b66a5b03080c0e532403"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "message": "cpp: Eliminate circular dependency between thrift libraries\n\nPreviously, Thrift.cpp contained TApplicationException, which was using\nTProtocol methods, defined in TProtocol.h.  This caused a circular\ndependency since libprotocol depends on Thrift.h.  This change moves\nTApplicationException into its own file.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920682 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "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": "a1a15112fed5f7ec934a352920b4c535941fd1ab",
      "tree": "5aca787d7a2489cbebb88fed005c97a47ac4eb84",
      "parents": [
        "eed92991cf064f7c89a911be734d51619150d6bf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "message": "cpp: TSocket: call a second gettimeofday only for error checking\n\nPreviously, we called gettimeofday twice for every send, which is\ncostly.  Now, we only make the second call if send fails with EAGAIN.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eed92991cf064f7c89a911be734d51619150d6bf",
      "tree": "f2e05dedb6daeff59fdfa1609d30056216d4a2bc",
      "parents": [
        "8106ba617af50f2a325fd6ce01a1a995cbd320a9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "message": "cpp: TSocketPool: Optimize the case of a single server in the pool.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920676 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8106ba617af50f2a325fd6ce01a1a995cbd320a9",
      "tree": "67bf9253e4e6f58119ce830092ef73a1a2fa2b90",
      "parents": [
        "9c22ba41033a3f632df9db1c871cbf844e79824c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "message": "cpp: TSocketPool: make it possible to add servers by struct\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920675 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9c22ba41033a3f632df9db1c871cbf844e79824c",
      "tree": "f1345b9a32516d4f7863da36dbcb068692257af8",
      "parents": [
        "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "message": "cpp: TTransport: set END_OF_FILE TException code if read returns 0\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920674 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": "58e4d2c6e3b237825b573116d4e06781733ab5f5",
      "tree": "58baf86bf023662ae8c58d314f301b44ec1219d1",
      "parents": [
        "450e35d2a333a6883c4a7444d9687e9ebd1160dd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "message": "cpp: Log unexpected exceptions in TThreadPoolServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "450e35d2a333a6883c4a7444d9687e9ebd1160dd",
      "tree": "3ecd87d815ee076a751384a5e004a46ebc648ecb",
      "parents": [
        "9e8073c5cd71ad72f7603b36514af06cee09c830"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "message": "cpp: Fix max TCP port number\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920671 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e8073c5cd71ad72f7603b36514af06cee09c830",
      "tree": "6456dfabe60b407f7c700026512770e0620965da",
      "parents": [
        "e96fa5502f38d91e7c417343e4c504384fc84f31"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "message": "Eliminate some trailing whitespace\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920670 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": "83b8fdac0ff52f1f1d9f96772b956c807f668593",
      "tree": "d4cecc242929b8313fa6abcb19aac9214937f0f4",
      "parents": [
        "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "message": "cpp: Fix for task completion notification deadlock under heavy server load\n\nAlong with insuring that the event loop is able to see task completion\nnotifications, we need to process pending notifications as soon as they\nare available to avoid filling the notification pipe (the pipe can hold\n512 notifications).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920668 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": "28e88ecac1cab801112587068ee4fbc6de457e49",
      "tree": "03bf1cc43953d72dc46fc7f2308aaa435926e61b",
      "parents": [
        "01fe15322f55a9aec5de6807fe0d4c54db7d79f6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "message": "cpp: Exit TNonBlockingServer on memmory allocation failure\n\nsetrlimit causes bad_alloc exceptions, but undefined behavior occurs if\nwe don\u0027t exit.  It is not typical for libraries to call exit, but it is\nnot clear what other behavior is possible.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920665 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": "4ae8780c5c1e37c4c480a23f277a7942e3aada09",
      "tree": "b4af0631a81b83a4fec3bd43ace98dd030e60e52",
      "parents": [
        "53c10e09e15b446e7213b341e8fddc79296f1d51"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "message": "THRIFT-706. cpp: Fix memory leak of string_buf_ in TCompactProtocol\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920597 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": "9b90344445d0a753e8a4a8a926c67d6a6c051c5e",
      "tree": "0592ac49bbbee220c31b3bd9a952d8f13e44ccc2",
      "parents": [
        "72fd472476a68dc55ca8cbfb05452d6c69fb0d19"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 21 05:51:28 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 21 05:51:28 2009 +0000"
      },
      "message": "THRIFT-606. cpp: Fix build on Solaris Nevada\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@827890 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e7fca421efe0c76bc493a4058d3667c540bcca4",
      "tree": "44809cd68dc6383bfaa37f95a793f1665169274e",
      "parents": [
        "0e8e6099e215f3a6adcb6e5c75e9dc8ad53a7a21"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Sep 19 01:59:13 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Sep 19 01:59:13 2009 +0000"
      },
      "message": "THRIFT-587. cpp: Properly set addrLen before accept calls\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@816850 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": "3029786ce1dda4bb625e72ebb5202c0b89e233a2",
      "tree": "c7f97b24b8f009c3ebd6395e816b706e1a4df1c5",
      "parents": [
        "3efce2336983ae9cb91e70d73827fa377ca3a3a7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Aug 05 16:42:59 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Aug 05 16:42:59 2009 +0000"
      },
      "message": "THRIFT-555. cpp: Fix macro defintions for TCompact on non-GNU big endian\n\nWe were defining ntolell and letonll, but we were only using\nhtolell and letohll.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@801293 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": "840e75205bf4c7da635bd40dd10867073ca1d51e",
      "tree": "119644b07390d4a0cb84fac61327d90e2805a0be",
      "parents": [
        "2fb877a794ce3df3eb488926f991e210f419ebf6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:10:50 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jun 04 00:10:50 2009 +0000"
      },
      "message": "THRIFT-497. cpp: Fix TSocket::read and peek on Max OS\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@781626 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "08d2f11cbec8147e8fb13c06a1b1a91317a8272d",
      "tree": "c7d91b6f914002c8bdfb73098d89b59c76018f12",
      "parents": [
        "e5eef13e6f509ad60cd2076d37f9ddfe54df7785"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:36 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:36 2009 +0000"
      },
      "message": "cpp: Fix compilation on OpenBSD by including sys/types.h\n\nsocket(2) says that this might be required on some Unixes.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776931 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": "d28ce1035b6880f73a39e993280c7358e114d88f",
      "tree": "949f4ada54eb54838b07858c065d1713b53875e6",
      "parents": [
        "32194ab4425c5db1a6406427df0251ebd96186d6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:14 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 21 02:28:14 2009 +0000"
      },
      "message": "cpp: Fix an OpenBSD compilation error that appears to be a real bug\n\nThe (Linux) man page for ctime_r states pretty clearly that\nthe buffer it uses must have space for at least 26 characters.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776925 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": "def30a60723625ebb5e884fdf259aeeb24346d15",
      "tree": "03cc17d38ce4d460d2728a83e6caa77650bc5d5f",
      "parents": [
        "9e4c04125e4e4e113ceba64116acfccd7a8f7f04"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Apr 08 00:19:37 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Apr 08 00:19:37 2009 +0000"
      },
      "message": "THRIFT-387. Add appropriate Apache header to all code files\n\nThis hits all the documentation and some misc code files that have avoided the license up to this point.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@763048 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "141eab41474c18dd5509446a71f63b62d4b4035c",
      "tree": "0d64ad1f2c765126e591f14bdaf2f233ad137336",
      "parents": [
        "260fa93aaa50e8e6431de682f2d172515a4c8d58"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 03 15:05:28 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 03 15:05:28 2009 +0000"
      },
      "message": "THRIFT-425. cpp: numeric_limits is declared in \u003climits\u003e\n\nTCompactProtocol.cpp doesn\u0027t compile without including limits.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@761705 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "260fa93aaa50e8e6431de682f2d172515a4c8d58",
      "tree": "ddc7944090948f79d1f4bb3c7ac0d72f31f9194a",
      "parents": [
        "d0251dd85281c018f7667083436b5d6aa204c814"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 23:51:39 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 23:51:39 2009 +0000"
      },
      "message": "THRIFT-411. cpp: Make TNonblockingServer::connectionStackLimit_ accessors use the right type\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@761481 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": "e4d4ea0e834ed4d022bb38e53daae4985c04ee04",
      "tree": "1fc0cfa600e97f81bbb995a98ed5a4340cdca6b1",
      "parents": [
        "a7d63f5f7013ab90999d715b1f9c311296fa2d19"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 21:37:17 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 21:37:17 2009 +0000"
      },
      "message": "THRIFT-333. cpp: Initial TCompactProtocol implementation\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@761438 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "deda141392d0b242e1fce0c0682ceedb45642a18",
      "tree": "b3341930bc7cc0965fa6d725f728774fae8c361c",
      "parents": [
        "b5714ef91ec7210c65e07c8d635c224795f22919"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 19:22:31 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Apr 02 19:22:31 2009 +0000"
      },
      "message": "THRIFT-388. Create a \"ONEWAY\" message type that is an alias for \"CALL\"\n\nPave the way for a new message type for oneway function calls.\nFor now, just define the constant in all languages and make\nserver implementations treat it the same way as a normal call.\nOnly C++ and Erlang currently check the message type (on the\nserver side).\n\nThere is a little bit of redundancy in the Erlang code, but\nthe alternative is a bit gross, and this split-up will be\nnecessary eventually when we start handling one-way calls\ndifferently.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@761389 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e48e55447f61ae4041166b47ec3ebfc79e749931",
      "tree": "f27cf311dba6bbe9d0115f0bc3ce3c88701f655a",
      "parents": [
        "887bd33772249cef3cc42dda9f8622e25a15d830"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 22:52:42 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 22:52:42 2009 +0000"
      },
      "message": "THRIFT-387. Add license to pkgconfig files\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@760219 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": "abb56a4a0dbeaedf0e71cf206db8e7e16932ab6b",
      "tree": "cd110d0baff80afea51007897b170a272cd3d941",
      "parents": [
        "2aa289072b0ca427b2afc79793310c910596a8b5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Mar 26 06:23:57 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Mar 26 06:23:57 2009 +0000"
      },
      "message": "THRIFT-255. cpp: Add TSimpleFileTransport, a wrapper around TFDTransport\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@758533 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c51986f43897a64531935653cb4a2462f6cd7e11",
      "tree": "da8728080bf9265c2aa6eb8d72877b384ea94c80",
      "parents": [
        "473292500dc553e537aad0544f9fbb31d0fbf3d0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:25 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:25 2009 +0000"
      },
      "message": "THRIFT-136. s/async/oneway/ in comments\n\nThis is an internal-only change.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@757990 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": "cbcd63ab4984336ecebae485bd8b3186a0444d39",
      "tree": "906c46c3efb954ac56fe083d74358124ea38ce22",
      "parents": [
        "48141bf5a686453b7a1b5b5b506617669b7cc748"
      ],
      "author": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Thu Mar 19 03:50:05 2009 +0000"
      },
      "committer": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Thu Mar 19 03:50:05 2009 +0000"
      },
      "message": "Thrift-357. cpp: Fix buffer and connection bloat in TNonBlockingServer\n\nAuthor: Anthony Giardullo\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@755824 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "48141bf5a686453b7a1b5b5b506617669b7cc748",
      "tree": "fd2b33e0d42b71ac184e5eaa3732bfec82d66e64",
      "parents": [
        "4980910100f67b1353040529257825af946f8e6b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 18 23:59:56 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 18 23:59:56 2009 +0000"
      },
      "message": "THRIFT-373. Update lists of files to include in release tarballs\n\nThis is mostly EXTRA_DIST, but also includes some headers.\nI had to drill down into test because \"make dist\" builds some\nof the test code.  .gitignore is not included in the tarballs.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@755791 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "45d56965c29850ae8d86b7d822ee8f3169ab57f1",
      "tree": "edc3f492d8d059e01ebc89c1816894202ce661e7",
      "parents": [
        "e0a11c44ab44eab3d4662716a70bfc5f9d272b77"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Mar 14 23:35:16 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Mar 14 23:35:16 2009 +0000"
      },
      "message": "THRIFT-351. cpp: Allow a custom ThreadFactory in TThreadedServer\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@754551 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "022b224ebdd932bb8e4fe54beea02589c3661b8b",
      "tree": "c18d8854fb93897d8a29e9d2d83bcfe2f46bd59e",
      "parents": [
        "586f0a0f01458f5691382249d2899dbd7da84dd3"
      ],
      "author": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Thu Mar 05 21:05:37 2009 +0000"
      },
      "committer": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Thu Mar 05 21:05:37 2009 +0000"
      },
      "message": "THRIFT-96. cpp: TSocket.peek fails on FreeBSD\n\nAuthor: Alexander Shigin\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@750585 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5ace1780abe8f62e6e6be789ae53637f3a35b195",
      "tree": "9e3cf1f8120efe561c92ac8356b91d659320efc6",
      "parents": [
        "e8d3c47944139364d0573fa82c3d5ba877df13e9"
      ],
      "author": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Wed Mar 04 21:10:58 2009 +0000"
      },
      "committer": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Wed Mar 04 21:10:58 2009 +0000"
      },
      "message": "THRIFT-265. cpp: Reset buffers every 512 calls in TNonblockingServer\n\nAuthor: Erik Frey\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@750153 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "57b500610f34d15e7261c6460144ec88f710af85",
      "tree": "65cedde9f783f26df06cdd194c4d8dac97307114",
      "parents": [
        "f4c71c73d0d3438d5eb8c72dc889fb292bc23cc8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 25 00:59:55 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 25 00:59:55 2009 +0000"
      },
      "message": "THRIFT-348. cpp: Fix readBool for vectors of bools (again)\n\nThis bug only affected the returned number bytes read\n(which is not currently used), not the actual bool value.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@747635 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "035aed90c0a7e54cd9e0f2ac70dc7c1bb303a4b0",
      "tree": "19d48f30b2c1937c378a230445fbf16732d220ef",
      "parents": [
        "7d3df42bb5eefc740724537d802597668ab1a955"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Feb 10 21:38:48 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Feb 10 21:38:48 2009 +0000"
      },
      "message": "cpp: Fix implementations of \"list\u003cbool\u003e\"\n\nTProtocol::readBool expects a \"bool\u0026\" as its argument, but \"list\u003cbool\u003e\"\nis implemented as \"vector\u003cbool\u003e\", which is a specialization of vector\nthat uses a custom structure as its reference type.  Therefore, we need\nto overload TProtocol::readBool for std::vector\u003cbool\u003e::reference.\nThis function is provided as a non-virtual for efficiency since it is\nhighly unlikely that any subclass will want to override it.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@743112 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0b7d6fa5ee27dcfe60ed946c99fbc1c664bb4057",
      "tree": "8a8d7fded45f797c0155f0a16d08371839c3c287",
      "parents": [
        "d20a1d3619efa9edef51364d927bc9a78b37217f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Feb 07 02:36:35 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Feb 07 02:36:35 2009 +0000"
      },
      "message": "THRIFT-314. Purge reflection.limited\n\nThis was a feature designed to allow a Thrift server to report\ninformation about its interface.  However, the feature has\nsignificant design problems, and is presence is currently causing\nconfusion without doing any good.  Therefore, it is being removed.\nIt will always be in source control if and when we are ready to\ncome back to it.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@741824 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": "4c266ccc2cd6598891dfd8955cf0dc8ff4b97976",
      "tree": "af4188c44514f6f8c0f32b62c7eacc7180872fae",
      "parents": [
        "6713e1b126c8734ae9daafb4a63f76f26ca7fb7b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jan 15 23:56:24 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jan 15 23:56:24 2009 +0000"
      },
      "message": "THRIFT-244. cpp: Make TJSONProtocolFactor inherit from TProtocolFactory\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@734863 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6713e1b126c8734ae9daafb4a63f76f26ca7fb7b",
      "tree": "41428eef0cabfd059ede77d7ecb3bd52e622e9ff",
      "parents": [
        "afa80ea73d4cbf83afee807e5d9f9034fa177ade"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jan 15 23:56:19 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jan 15 23:56:19 2009 +0000"
      },
      "message": "THRIFT-244. cpp: Fix TJSONProtocol::writeMessageBegin\n\nuint8_t is a character type, so lexical_cast doesn\u0027t convert it\nto an integer representation.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@734862 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "322e595c2ac8a7ff4ef53cc472882d85e36000a0",
      "tree": "62b7512e2549ccf03fb825683c0f14d05427d8e5",
      "parents": [
        "fbb14ef1b33db23cb0862975af58bbba957d2378"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Dec 05 02:54:09 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Dec 05 02:54:09 2008 +0000"
      },
      "message": "THRIFT-203. cpp: Make library headers compile under g++ -pedantic\n\nIt turns out that trailing commas in enum definitions are\nnot actually valid C++.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@723562 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": "d90cd1f539f5837858aa64256d187b4444560b81",
      "tree": "d8de41e092bed047cf12db66f902ecfce06c9def",
      "parents": [
        "f33e03c6fad10465ac4867b27c63a35cb2de0cbe"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 29 22:50:34 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 29 22:50:34 2008 +0000"
      },
      "message": "THRIFT-168. cpp: Clear transport buffers before a flush\n\nPreviously, TBufferedTransport and TFramedTransport could\nleave data in their buffers if a flush threw an exception.\nThis patch makes them reset their internal pointers before\nflushing to the underlying transport.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@709037 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "826e648354c4e2e37abe5d8dda04e6497d76e16a",
      "tree": "0f9a3f43e3da5e0732bc05d007861b3a18c6ffad",
      "parents": [
        "1cc0c5e6d6088849cca2987af39f0d9a965c0d60"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 20 21:29:07 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 20 21:29:07 2008 +0000"
      },
      "message": "THRIFT-177. cpp: Add a missing \"std::\"\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@706418 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c53a5944eda576d1920cf44359e310b1205361cb",
      "tree": "06e9bda6ceff532b2f6466abb8da0f8071d4f832",
      "parents": [
        "9837aaf097729beb2d3c656bb68c9c373faa84e9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 07 23:55:24 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 07 23:55:24 2008 +0000"
      },
      "message": "Fix a compile bug introduced by r702644\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@702672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e11f3073f7411e7b0508047850fcb42b331a2e5e",
      "tree": "0f3345c7c166f284b8a7a87e71fe21714cdedf17",
      "parents": [
        "58434e698865101096e28fb2ea98282133d55e2c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 07 21:39:19 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 07 21:39:19 2008 +0000"
      },
      "message": "THRIFT-149. cpp: Make TNonblockingServer handle a shut-down ThreadManager\n\nThis is a step toward implementing a graceful shutdown.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@702644 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5317b1ecd23bc6ba29905cff6f8e411fbfe287f8",
      "tree": "a49c45aecf8cab4133d58ae243680a26beb67177",
      "parents": [
        "46e8d0b8fb18e25baf45a51715d7e3129a17fdb6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 24 19:10:16 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 24 19:10:16 2008 +0000"
      },
      "message": "THRIFT-95. cpp: Fix write buffer initialization in TBufferedTransport\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@679500 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "01e55c1c28547eaac74636790bb86617c890c4c2",
      "tree": "ccf24cb13626196702d177e2266e62cb9287e468",
      "parents": [
        "2be87f3ab036183d49ad7a9af274c797839ef342"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun Jul 13 22:18:51 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun Jul 13 22:18:51 2008 +0000"
      },
      "message": "cpp: Eliminate the use of fprintf [THRIFT-77]\n\nAdd printf and perror methods to TOutput and use them to\nreplace uses of fprintf in the C++ library.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@676448 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2be87f3ab036183d49ad7a9af274c797839ef342",
      "tree": "34f05e595d0b2136f7e4a7d7eec0895d6b61737c",
      "parents": [
        "8d07e1d1524ce548bcd3b9b792af6f0af218a8bb"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jul 11 21:39:58 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jul 11 21:39:58 2008 +0000"
      },
      "message": "(THRIFT-37) Add some missing newlines to fprintfs.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@676087 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": "af78778acd7fb551a84aaf63e604d969123bf85d",
      "tree": "db279121d2fdebf27cced752a46ab0898848c0b3",
      "parents": [
        "03b574feada3862d460c7fc15dd1fb90687ff428"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 03 20:29:34 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Jul 03 20:29:34 2008 +0000"
      },
      "message": "(THRIFT-54) Remove \"frameResponses\" from TNonblockingServer\n\nTNonblockingServer and TFramedTransport used to have the option to only\nframe messages on one side of the communication.  This capability was\nremoved from TFramedTransport because it was poorly implemented and not\nuseful.  This change removes it from TNonblockingServer as well, and\nremoves references to it in some of the C++ test code.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@673791 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "52cb7a7413a33a86079cf8e9b3561e33339aeb9d",
      "tree": "809000e9a27f54182eea3982d5ad7e54b7e98dc0",
      "parents": [
        "f14541626d1c49cb1439d65e81fa3609c23b7cf0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jun 30 21:40:35 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jun 30 21:40:35 2008 +0000"
      },
      "message": "(THRIFT-45) TNonblockingServer (C++): only do one write in responses.\n\nInstead of doing one 4-byte write for the frame length before the write\nof the actual message, prepend the frame length to the message buffer\nso we can send them both at once.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@672937 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c88eb8c9dda2bd5100216458779f8bff7b1a9275",
      "tree": "216f0d3ed1ec88bb2b275654ed47ca8ab5c670a6",
      "parents": [
        "a27c3cd0c92371a5d9a604a9a088bf53acd01f49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:54 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:54 2008 +0000"
      },
      "message": "Include \u003ccstring\u003e and use \"std::\" for memset in T[Server]Socket.cpp.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666498 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a27c3cd0c92371a5d9a604a9a088bf53acd01f49",
      "tree": "b8a6b1d489e8dfa07feebdfd9c292706913c0625",
      "parents": [
        "32e95f8bb9e124720beae6d4fe1897328dda5f83"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:44 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:44 2008 +0000"
      },
      "message": "Include \u003ccstring\u003e and use \"std::\" for memcpy in TBufferTransports.h.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666497 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "32e95f8bb9e124720beae6d4fe1897328dda5f83",
      "tree": "8199737619b7e401c2c5a50a06bc888b4bbf0de8",
      "parents": [
        "fb1c5ace0afa13d91d744080abd2dac1fbaf2911"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:36 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:36 2008 +0000"
      },
      "message": "Include \u003climits\u003e in TBinaryProtocol.cpp for numeric_limits.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666496 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": "a4d7eef5cd5e946f30c386e1f4fe790f6d5574ad",
      "tree": "2365bb6d1b98e8e4de254613ae55d50aab46fa4e",
      "parents": [
        "77bb9167664b39ea8656aadf64537f6c4f109219"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:20 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:20 2008 +0000"
      },
      "message": "Fix some includes in Thrift.{h,cpp}.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666494 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "77bb9167664b39ea8656aadf64537f6c4f109219",
      "tree": "fcccaf897478147f6168c6991bc51c8edf67acd5",
      "parents": [
        "4d1c712ad173a66faafa2844bad9504e5f7bdfec"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:11 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:18:11 2008 +0000"
      },
      "message": "Regenerate reflection_limited to pick up some compiler improvements.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666493 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c6c6498b0227119abf0fd7b41cf63b12f4c013b8",
      "tree": "657ea01cf0a884947c40e8048e83af242dcee5d8",
      "parents": [
        "1a14091adc3380df570d01849b9b6002f7dc24c6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:16:45 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:16:45 2008 +0000"
      },
      "message": "Allow out-of-source builds.\n\n- Clean up lib/cpp/Makefile.am to use AM_CXXFLAGS etc instead of\n  target-specific so we can take advantage of default flags.\n- Use top_builddir in a few places instead of top_srcdir.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666489 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1a2f2187cd9891634080d4aa53a76f50849a1ed1",
      "tree": "a41264a0816247a430e0c3623a30a177a1b0b46e",
      "parents": [
        "61eec8f95c679078f5f5c3f91edc2178e59bfe34"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:14:01 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:14:01 2008 +0000"
      },
      "message": "Another whitespace rampage\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666477 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "13aea4600c7e170a0f178d72d7d68d3bddd7ef9a",
      "tree": "241b7993b4aa3d9009be6405952d1e30cd98de77",
      "parents": [
        "d14f4f86d4a521dd2327789f9230ab239b1c342b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:04 2008 +0000"
      },
      "message": "Fix IPv6 on FreeBSD.\n\nOn FreeBSD (and possibly other BSDs), binding to ipv6 is restricted unless the\nsysctl net.inet6.ip6.v6only\u003d0 or the socket option IPV6_V6ONLY is turned off.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666367 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": "7dab93e23790f6a2d647ad5d4a7a34f24a464778",
      "tree": "1d496585a4a4b720e0fca148e7d4dac395f1ffe5",
      "parents": [
        "f9b5b12f4d7e86e9834dd39ae4393383cab809af"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 19:18:29 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 19:18:29 2008 +0000"
      },
      "message": "Fix a few copy-paste errors in TBufferTransports (not code).\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665684 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "80097936bd1258f074a226396f9546d98d060964",
      "tree": "be8903db3543110e45d9ad056a19cb1bbff10d6c",
      "parents": [
        "47714584327a9a8240f28e8ef4493534a1d047ba"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:14:10 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:14:10 2008 +0000"
      },
      "message": "C++/TFramedTransport: Don\u0027t write an empty frame on flush.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665681 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47714584327a9a8240f28e8ef4493534a1d047ba",
      "tree": "24bb6dd7e13bc8bf12964f0ee059ce0805c9e321",
      "parents": [
        "8df6c82aa751f65100b6b283dee205e251753aa8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 00:40:26 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 00:40:26 2008 +0000"
      },
      "message": "Fix a small logic error in TBufferedTransport::borrowSlow.\n\nWas using an unsigned int for a value that could be negative.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665680 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f233e46a2dc705f017d5980baa6ad97922b72291",
      "tree": "1ace8edd19a260f76b55e117ce615da8b1e200b9",
      "parents": [
        "28f298dd5d9b68c9c0dbaefa95c88d51ed8e430a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:21:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:21:04 2008 +0000"
      },
      "message": "Throw a transport exception if fstat fails.\n\nThis was failing on an NFS mount that was dying.\nBetter to fail hard then return uninitialized data.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "28f298dd5d9b68c9c0dbaefa95c88d51ed8e430a",
      "tree": "4c089343bfd96f8eddb653ec2f746a27d7a8ec9a",
      "parents": [
        "9a4edfa07fe0c09865015a15d26695823cd4a5fd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "message": "Memory-based transport rewrite.\n\nThe old implementations of the memory-based transports (TBufferedTransport,\nTFramedTransport, and TMemoryBuffer) shared very little code and all worked\na bit differently.  This change unifies them all as subclasses of a single\nbase (TBufferBase) which handles the fast-path operations (when requests\ncan be satisfied by the buffer) with inline methods (that will eventually\nbe made nonvirtual in the template branch) and calls out to pure-virutal\nmethods to handle full/empty buffers.  All of the buffer-management is now\ndone in terms of \"base and bound\" pointers rather than \"pos\" integers.\n\nThese classes were moved to TBufferTransports.{h,cpp}.  The .h is included\nin TTransportUtils for backwards compatibility.\n\nAlso added a \"TShortReadTransport\" to assist testing transports.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665676 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e39e9379119b99c2bad7613b8cd32c11482b9558",
      "tree": "9247055d9281c2092c68306010ee529bc9022e52",
      "parents": [
        "64120001437477569524be5cfc1f5054b27ee807"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:48 2008 +0000"
      },
      "message": "Remove a few unnecessary includes to speed up compiles.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "64120001437477569524be5cfc1f5054b27ee807",
      "tree": "8efc3e3b991173c848e2332fa4b04890bd920191",
      "parents": [
        "74672b6719903332c0b5969fa0bffd12c13cf121"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:12:24 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:12:24 2008 +0000"
      },
      "message": "C++: Make write{Struct,Field}Begin take \"name\" as a const char*.\n\nSummary:\nThese methods previously took name as a const string\u0026.  While that way\nis more idiomatic, it requires a temporary string to be constructed\nwhen we pass a string literal (which is always).  This was significantly\nslowing down the serialization of field-heavy structures.  This change\nwill break ABI compatibility, but the serialization speed boost with\nno external API changes is too important to pass up.\n\nReviewed By: mcslee, aditya\n\nTest Plan: make check\n\nTracCamp Project: Thrift\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c17fe6b918015166d145936414a411589f03255c",
      "tree": "0e3dcbd7c09377239ac4fc1d89efe674f4a22054",
      "parents": [
        "1997f10e282e5d188b65b45190ceb5a7e1f95072"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:43 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:43 2008 +0000"
      },
      "message": "THRIFT: Nonblcoking bug fix\n\ncalling decrement with -1 even though param is an integer. Just made it clean by adding a decrement function\n\nreviewed by: mcslee\nrevertable\ntest plan: ran on a test server\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665669 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1997f10e282e5d188b65b45190ceb5a7e1f95072",
      "tree": "cc11c24b4e175c91b2c806a5da35b374a1d3fbf5",
      "parents": [
        "81c7fc01bf4c8a832626dc711b0b35c086f018cb"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:41 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:41 2008 +0000"
      },
      "message": "Persistent conns in TSocketPool\n\nSummary: Added support for persistent conns in TSocketPool\n         Also, added some util functions in TNonblockingServer\n\nReviewed By: mcslee\n\nTest Plan: Ran a test search cluster with these changes - open was only called once (I put fprintfs in open and close), after which the socket was reused\n\nRevert: OK\n\nTracCamp Project: Thrift\n\nDiffCamp Revision: 11425\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665668 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bd3b168e633cedf903aebf106651dbccf7423089",
      "tree": "8fc1bcda2f5fa3227598d1d1ed80adb505d15a06",
      "parents": [
        "10a22bf1f66f4851fffc45ce5c377e5c9df13eed"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 28 02:42:28 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 28 02:42:28 2008 +0000"
      },
      "message": "Silence a valgrind complaint by matching \"delete[]\" with \"new[]\".\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665666 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "94058454a043a9d310a6ae027dabad59d5e98e1d",
      "tree": "97e01ca70b37f3874c7d3178a1e581a3ac9846c8",
      "parents": [
        "d80c06a1a1a4692affa620f505b783d3db2aec3c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 21 18:07:58 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 21 18:07:58 2008 +0000"
      },
      "message": "Add TBase64Utils.h and TJSONProto.h to lib/cpp/Makefile.am.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665663 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2724c7a311dcab7422fd410444d89946ef759c0d",
      "tree": "e87b6c1976cd1e2206db3a28ee3a2dc0db5dabc5",
      "parents": [
        "739cbe2b86c8b4a50f3305f7edefd142cad423f8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Apr 18 17:48:03 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Apr 18 17:48:03 2008 +0000"
      },
      "message": "Thrift: bug fix for interrupting server socket\n\nSummary: TServerSocket uses a socket pair to signal interruption to the select() call on its main server socket.  A bug in the code prevented the select() from listening for events on the internal socket pair; in fact, it was accidentally listening to file descriptor 1.\n\nReviewed By: aditya\n\nTest Plan: Use a server that supports a call to shutdown, which should signal an interrupt to the internal socket, and should result in an immediate and clean termination of the server socket thread.\n\nRevert: OK\n\nTracCamp Project: Thrift\n\nDiffCamp Revision: 11932\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665658 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "739cbe2b86c8b4a50f3305f7edefd142cad423f8",
      "tree": "3c1a93c3326e66bfaf5cad0e74f32e4abafee4a5",
      "parents": [
        "a1771097520d57cd84dcd5e06df6e5e4fae5e5c1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 15 05:44:00 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 15 05:44:00 2008 +0000"
      },
      "message": "Add a few missing includes.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665657 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1771097520d57cd84dcd5e06df6e5e4fae5e5c1",
      "tree": "f312bda2ff051b2bd42706a157b9f357422cb7ca",
      "parents": [
        "1d106ae6f00b25684d701cb38bd6e51e5220ddcb"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Apr 11 22:36:31 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Apr 11 22:36:31 2008 +0000"
      },
      "message": "Fix Thrift.cpp for non-Linux systems.\n\n- Add some missing namespace qualifiers that are not used in the glibc case.\n- Move an include from Thrift.h to Thrift.cpp.\n- Include boost/lexical_cast.hpp in TJSONProtocol, in case we ever eliminate\n  it from our header files.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665656 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b54deb1ca538b2f244225801408637aa8921d5db",
      "tree": "cc00c1782380639b01a010a3127f94e40a8f368a",
      "parents": [
        "1677ac9cc7550ea3eb4a4e46fbcf16790c2cb70c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 08 19:38:49 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 08 19:38:49 2008 +0000"
      },
      "message": "Fix a minor bug in TDebugProtocol and remove dead code.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665650 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "1677ac9cc7550ea3eb4a4e46fbcf16790c2cb70c"
}
