1. 26 Sep, 2014 7 commits
    • Nicholas Ormrod's avatar
      Fix lint errors · 69a28bbf
      Nicholas Ormrod authored
      Summary: Pass const StringPieces by value instead of reference.
      
      Test Plan:
      fbconfig -r folly && fbmake runtests
      
      Reviewed By: robbert@fb.com
      
      Subscribers: trunkagent, sdwilsh, njormrod
      
      FB internal diff: D1569488
      69a28bbf
    • Ranjeeth Dasineni's avatar
      rfc : -Wshorten-64-to-32 warnings in folly liger dependencies · 6fc7a48c
      Ranjeeth Dasineni authored
      Summary:
      This is not a fix but me seeking advice here. The context here is that in liger (our common network
      stack for mobile platforms), we saw bugs due to truncation and want to enable these warnings. To find those in our code,
      I had to first resolve the folly ones. I just got around by making the truncation explicit so that I can get to real errors.
      Ideally I would like owners to examine each case and fix the original/accept the explicit truncate if its intended. Let me
      know what you think. The last (least preferred) is for us to keep this as a liger only change. We have a couple of ways to
      do that but it would be nice to fix.
      
      N.B : this covers only liger dependencies
      
      Test Plan: errors resolved after these changes.
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: trunkagent, doug, shilin, njormrod, seanc, pgriess
      
      FB internal diff: D1509355
      6fc7a48c
    • Nathan Bronson's avatar
      fix leak in MPMCQueueTest's use of boost::intrusive_ptr · 54ab6858
      Nathan Bronson authored
      Summary:
      MPMCQueueTest's intrusive reference count test implementation was
      incorrect, so it simultaneously didn't test what it should and had a leak.
      
      Test Plan: tests, plus new __thread to track lifetimes
      
      Reviewed By: meyering@fb.com
      
      Subscribers: njormrod, soren, meyering
      
      FB internal diff: D1569448
      54ab6858
    • Nicholas Ormrod's avatar
      Fix lint errors · 9f4a587c
      Nicholas Ormrod authored
      Summary: Lines exceeding 80 characters have been restructured.
      
      Test Plan:
      fbconfig -r folly && fbmake runtests
      
      Reviewed By: robbert@fb.com
      
      Subscribers: trunkagent, sdwilsh, fugalh, njormrod
      
      FB internal diff: D1568086
      9f4a587c
    • Nicholas Ormrod's avatar
      Increase wangle test timers · b6ee36ab
      Nicholas Ormrod authored
      Summary:
      When running all folly tests at once, as with
      fbconfig -r folly && fbmake runtests
      the wangle tests sometimes fail. Enough tests are running that the
      1-millisecond timer is too small, and is sometimes missed. Bumping
      it to 10 milliseconds.
      
      Test Plan:
      fbconfig -r folly && fbmake runtests
      
      Reviewed By: hans@fb.com
      
      Subscribers: sdwilsh, fugalh, njormrod
      
      FB internal diff: D1568124
      
      Tasks: 5180879
      b6ee36ab
    • Pavlo Kushnir's avatar
      Faster accessors for dynamic values · 8c62ae77
      Pavlo Kushnir authored
      Summary:
      Sometimes it is useful to have a fast accessor to a value stored in dynamic, without any type conversion. These still do the type check, but compiler has more room for optimization.
      
      Test Plan: build folly, will add unit tests/benchmarks if this makes sense at all.
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: jdelong, njormrod
      
      FB internal diff: D1564867
      8c62ae77
    • Guohui Wang's avatar
      add function to push data from another cursor · cbfe1b0c
      Guohui Wang authored
      Summary:
      Add a function to Writable to push data from another cursor. Data in the input
      cursor could be in a buffer chain.
      
      Added test in IOBufCurosTest.cpp to test the new function.
      
      Test Plan: fbmake runtests;
      
      Reviewed By: simpkins@fb.com
      
      Subscribers: njormrod, net-systems@
      
      FB internal diff: D1563209
      
      Tasks: 4886058
      
      Blame Revision:
      cbfe1b0c
  2. 19 Sep, 2014 5 commits
    • dcsommer's avatar
      Bump version to 9:0 · df0b3c97
      dcsommer authored
      df0b3c97
    • Tudor Bosman's avatar
      Do not barf on invalid ELF files · 00a4fa1b
      Tudor Bosman authored
      Summary: The Haskell runtime does magic, and loads an ET_REL file directly.
      
      Test Plan: ran it
      
      Reviewed By: jon.coens@fb.com
      
      Subscribers: njormrod, rkroll
      
      FB internal diff: D1566853
      
      Tasks: 4401996
      
      @override-unit-failures
      00a4fa1b
    • Dave Watson's avatar
      move socketaddress to folly · 45c8738b
      Dave Watson authored
      Summary:
      Goes with IPAddress and MACAddress already in folly.
      
      * change namespace, add typedef in thrift.  Had to update forward decls to folly namespace.
      * change exception types to std:: types instead of TTransportException.  I fbgs'd for everywhere I could find trying to catch these and updated the type, there looked like there were only ~9 files or so.
      
      Test Plan: contbuild.
      
      @override-unit-failures
      
      Tests already passed in last run
      
      Reviewed By: simpkins@fb.com
      
      Subscribers: doug, ps, alandau, everstore-dev@, njormrod, fugalh, alikhtarov, bmatheny, jsedgwick
      
      FB internal diff: D1556916
      45c8738b
    • James Sedgwick's avatar
      fix occasional crash in cpu pool · e3e4ab20
      James Sedgwick authored
      Summary: need to initialize threadsToStop_ and make it signed so it doesn't underflow in rare races
      
      Test Plan: cpu pool unit tests no longer crash if run a ton of times
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: fugalh, njormrod
      
      FB internal diff: D1563524
      e3e4ab20
    • Dave Watson's avatar
      install connectionmanager headers · ea6c8014
      Dave Watson authored
      Summary: Install headers / compile files
      
      Test Plan: watch jenkins build
      
      Reviewed By: dcsommer@fb.com
      
      Subscribers: doug, fugalh, njormrod
      
      FB internal diff: D1564098
      ea6c8014
  3. 18 Sep, 2014 5 commits
    • Dave Watson's avatar
      Bump version to 8:0 · c534238d
      Dave Watson authored
      c534238d
    • dungcoi's avatar
      merge https://github.com/facebook/folly/pull/88 · 7909e172
      dungcoi authored
      Summary:
      merge https://github.com/facebook/folly/pull/88, missing install header
      
      Looks like fbthrift build needs this
      
      Test Plan: watch jenkins build still works
      
      Reviewed By: ckwalsh@fb.com
      
      Subscribers: doug, njormrod
      
      FB internal diff: D1563651
      7909e172
    • Sean Cannella's avatar
      Remove dependency on std::to_string · 1e06d081
      Sean Cannella authored
      Summary:
      Mobile platform clang doesn't currently support std::to_string
      so remove folly's dependency on it.
      
      Test Plan: existing tests
      
      Reviewed By: mpawlowski@fb.com
      
      Subscribers: kmdent, fma, benyluo, shikong, ranjeeth, subodh, pgriess, njormrod
      
      FB internal diff: D1562179
      
      Tasks: 5183325
      1e06d081
    • Matt Dordal's avatar
      fix race in Future::waitWithSemaphore · 079e4ffe
      Matt Dordal authored
      Summary:
      There's a race condition in waitWithSemaphore, specifically because we're
      returning a new future that's completed by the input future. As a result,
      that future may not be completed by the time waitWithSemaphore returns,
      although completion should be imminent.
      
      Test Plan:
      `var=0; while true ; do echo $((var++)); _bin/folly/wangle/wangle-test --gtest_filter='Future*' || break ; done`
      
      Before change two runs yielded 303 and 371.
      
      After change I killed the test at 11000.
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: fugalh, njormrod
      
      FB internal diff: D1561281
      
      Tasks: 5180879
      079e4ffe
    • Nicholas Ormrod's avatar
      remove eof whitespace lines · 546bd3f5
      Nicholas Ormrod authored
      Summary:
      Remove lint errors from folly: trailing newlines
      
      find folly | xargs arc lint | grep -B3 EOF | grep ">>>" | egrep -o "folly[^:]*" | xargs -n1 sed -i '$d'
      
      folly/experimental/io/test/AsyncIOTest.cpp had two trailing newlines,
      the second was removed by hand
      
      @override-unit-failures
      
      Test Plan:
      fbconfig -r folly && fbmake runtests
      
      Pretty overkill for a whitespace diff, but why not.
      
      Reviewed By: robbert@fb.com
      
      Subscribers: sdwilsh, fugalh, njormrod
      
      FB internal diff: D1561213
      546bd3f5
  4. 17 Sep, 2014 6 commits
    • Dave Watson's avatar
      Bump version to 7:0 · 4ecd8cdd
      Dave Watson authored
      4ecd8cdd
    • Dave Watson's avatar
      move connectionmanager/managed connection to wangle · 0703c007
      Dave Watson authored
      Summary: Moar code sharing between proxygen/thrift.  Code must be moved to a common library: The only one we currently have is folly, but if someone wants to argue for a separate lib, that's cool too
      
      Test Plan: fbconfig -r proxygen; fbmake dev
      
      Reviewed By: dcsommer@fb.com
      
      Subscribers: doug, fugalh, bmatheny, njormrod
      
      FB internal diff: D1519919
      
      Tasks: 5002343
      0703c007
    • James Sedgwick's avatar
      ThreadPoolExecutor and its children CPUThreadPoolExecutor and IOThreadPoolExecutor · 79b9cc5f
      James Sedgwick authored
      Summary:
      Spun off from https://phabricator.fb.com/D1534506 as this seemed different enough for a new diff
      
      Similar to previous diff but attempts to reuse a common thread management process between cpu and io bound thread pools. Also sets the stage for other common functionality, e.g. stats, monitoring, timeouts, and so on
      
      Here is some output from the queue benchmark in common/concurrent with both of these pools added (changes to BM not in this diff): https://phabricator.fb.com/P16308560
      
      Test Plan: added a unit test, ran benchmark
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: fugalh, njormrod, bmatheny
      
      FB internal diff: D1555443
      
      Tasks: 5002392, 5002425
      79b9cc5f
    • Sean Cannella's avatar
      Fix folly signed/unsigned comparisons · a03331d8
      Sean Cannella authored
      Summary:
      Fix a few sign comparison issues in folly::IPAddress
      
      @override-unit-failures
      
      Test Plan: existing tests, compiled with clang
      
      Reviewed By: meyering@fb.com, davejwatson@fb.com
      
      Subscribers: njormrod, bmatheny, subodh, ranjeeth, pgriess
      
      FB internal diff: D1559152
      a03331d8
    • Marc Horowitz's avatar
      make with_exception() const work in all cases · 9d4d4b00
      Marc Horowitz authored
      Summary:
      Abstract the with_exception() logic into a static template
      function which will work with a const or non-const object.
      
      Test Plan: exception_wrapper_test
      
      Reviewed By: vloh@fb.com
      
      Subscribers: njormrod
      
      FB internal diff: D1549175
      
      Tasks: 5127267
      9d4d4b00
    • Shao-Chuan Wang's avatar
      Adding IO stats in AsyncIO. · 28f7ed4f
      Shao-Chuan Wang authored
      Summary:
      It would be great if we have IO stats tracking built within AsyncIO.
      It would enable upper layer application to better track the number of I/O
      that was submitted and completed
      
      Test Plan:
      $ fbmake runtests
      Test Results Summary:
      Passed: 1734
      100% successful
      
      Reviewed By: philipp@fb.com
      
      Subscribers: njormrod, schen, stanislav
      
      FB internal diff: D1557472
      
      Tasks: 5008299
      28f7ed4f
  5. 15 Sep, 2014 5 commits
    • Dave Watson's avatar
      Bump version to 6:0 · 785ae28b
      Dave Watson authored
      785ae28b
    • Chip Turner's avatar
      Add non-strict mode to folly::Singleton · 736c0e46
      Chip Turner authored
      Summary:
      It is difficult to guarantee every binary can call
      registrationComplete; for now, support a mode where we don't enforce the
      strict registration lifecycle.  In the fullness of time, we can make
      strictness the default.
      
      Test Plan: runtests
      
      Reviewed By: lins@fb.com
      
      Subscribers: lins, anca, njormrod
      
      FB internal diff: D1551688
      736c0e46
    • Victor Loh's avatar
      equality for exception_wrapper · 6b82bb37
      Victor Loh authored
      Summary:
      std::exception_ptr expose methods to compare equality and it
      will be great to do so for folly::exception_wrapper (it helps in gmock
      testing).
      
      Test Plan: added some unit tests to test this new functionality
      
      Reviewed By: mhorowitz@fb.com
      
      Subscribers: njormrod
      
      FB internal diff: D1546597
      6b82bb37
    • Dave Watson's avatar
      Make TSocketAddress use folly::IPAddress · 07286cf0
      Dave Watson authored
      Summary:
      Step 1 of moving TAsyncSocket and friends to folly.
      
      folly::IPAddress changes (can split these off if requested):
      * isLoopback looks for a single address, as opposed to subnet
      * For V6, isPrivate & isLoopback don't seem to check mapped addresses
      
      TSocketAddress changes:
      * Make union use folly::IPAddress instead of sockaddr struct.  external_ bool to tell if using AF_UNIX instead.
      * manage the port and scope/zone info ourselves
      
      @override-unit-failures
      
      Overriding failures, can't get contbuild to finish all builds after several tries.  None of the failures look related
      
      Test Plan:
      fbconfig -r thrift
      fbmake runtests
      fbconfig folly/test:network_address_test
      fbmake runtests
      
      Reviewed By: simpkins@fb.com
      
      Subscribers: snaptu-diffs@, trunkagent, hphp-diffs@, njormrod, fbcode-common-diffs@, doug, ruibalp, ps, alandau, bmatheny
      
      FB internal diff: D1479365
      
      Tasks: 3658665
      07286cf0
    • Jim Meyering's avatar
      folly: avoid used-uninitialized bug in a test · 73ebd0fd
      Jim Meyering authored
      Summary:
      Clang complained about this.
      * folly/gen/test/FileBenchmark.cpp (BENCHMARK): Initialize "rfd" to -1
      and verify that it is set to something nonnegative in the first
      BENCHMARK_SUSPEND block.
      
      Test Plan:
      Run this:
      fbconfig -r --clang --with-project-version clang:dev folly/gen && fbmake runtests
      and observe that compilation now succeeds. (and test results remain unchanged)
      
      Reviewed By: tudorb@fb.com
      
      Subscribers: njormrod
      
      FB internal diff: D1551180
      
      Tasks: 4090011
      73ebd0fd
  6. 10 Sep, 2014 4 commits
    • Sara Golemon's avatar
      Bump version to 5:0 · b39a14c4
      Sara Golemon authored
      b39a14c4
    • Daniel Sommermann's avatar
      Install EvictingCacheMap as part of OSS build · 9918c9e5
      Daniel Sommermann authored
      Summary: This may have just been forgotten when imported to folly
      
      Test Plan: live. verified file name
      
      Reviewed By: ranjeeth@fb.com
      
      Subscribers: doug, njormrod
      
      FB internal diff: D1548804
      9918c9e5
    • Sara Golemon's avatar
      Fix folly compilation on MacOSX · 6b5ac4fe
      Sara Golemon authored
      Summary:
      We don't always have features.h
      and our glibc doesn't have __GLIBC_PREREQ()
      
      @override-unit-failures
      
      Test Plan: Builds on MacOSX
      
      Reviewed By: pt@fb.com
      
      Subscribers: njormrod
      
      FB internal diff: D1546679
      6b5ac4fe
    • Dave Watson's avatar
      Remove broken test · b229d828
      Dave Watson authored
      Summary: Broken on other platforms, because demangle(typeid()) seems to return different results?  not entirely sure, but would like the builds to be green again
      
      Test Plan: watch contbuild for 'fbthrift jenkins build' to pass
      
      Reviewed By: mhorowitz@fb.com
      
      Subscribers: doug, njormrod
      
      FB internal diff: D1544919
      
      Blame Revision: D1535681
      b229d828
  7. 09 Sep, 2014 8 commits
    • Sara Golemon's avatar
      Bump version to 4:0 · 86a225d6
      Sara Golemon authored
      86a225d6
    • Dave Watson's avatar
      Move HHWheelTimer to folly · c39f3adf
      Dave Watson authored
      Summary:
      Move wheel timer to folly.  Needed for abstracting some code out of proxygen/thrift
      
      The only code change was removing usage of thrift's Util::currentTime() in favor of std::chrono::steady_clock::now()
      
      Test Plan: fbconfig thrift/lib/cpp/test:HHWheelTimerTest; fbmake runtests
      
      Reviewed By: alandau@fb.com
      
      Subscribers: doug, alandau, bmatheny, njormrod
      
      FB internal diff: D1519909
      c39f3adf
    • Jason Evans's avatar
      Convert from jemalloc's obsolete *allocm() to *allocx(). · 8470cb6e
      Jason Evans authored
      Summary:
      Convert from jemalloc's obsolete *allocm() to *allocx().
      
      Strengthen goodMallocSize() to always return a jemalloc size class, so
      that xallocx() success/failure detection is simple.
      
      @override-unit-failures
      
      Test Plan: Folly, unicorn, and HHVM tests.
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, hphp-diffs@, ps, chaoyc, search-fbcode-diffs@, unicorn-diffs@, ptc, njormrod
      
      FB internal diff: D1535841
      
      Tasks: 4996808
      8470cb6e
    • Marc Horowitz's avatar
      fix exceptionStr to work for derived classes of std::exception · accce27e
      Marc Horowitz authored
      Summary:
      templates and overloads are hard.  This uses SFINAE to get
      the desired behavior, and includes a test.
      
      This also removes a hack in ExceptionWrapper which isn't needed with this fix.
      
      Test Plan: string_test, exception_wrapper_test
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: dreiss, dancol, njormrod
      
      FB internal diff: D1535681
      
      Blame Revision: D1517701
      accce27e
    • Pavlo Kushnir's avatar
      Fix bug in stripComments · c9f5e539
      Pavlo Kushnir authored
      Summary: the bug is in InString state when we escape only '"' character. We should escape at least '\\' and '"'. This diffs simply escapes any character after '\\'.
      
      Test Plan: folly unit tests, mcrouter unit tests
      
      Reviewed By: stepan@fb.com
      
      Subscribers: njormrod
      
      FB internal diff: D1540836
      c9f5e539
    • Chip Turner's avatar
      Fix bug in circular singleton creation detection · be42394a
      Chip Turner authored
      Summary:
      We considered it circular if we tried to create a singleton
      while the singleton was being created.  In a single threaded world, this
      is correct, but under concurrency, two threads can be in the singleton
      creation codepath and become confused about the state of the singleton.
      
      This change uses a condition variable to notify when creation completes
      so that other threads can wait on the creation to complete.  Circular
      creation is detected via thread id.
      
      Test Plan:
      runtests (new test case; failed without the fix, passes with
      it)
      
      Reviewed By: hans@fb.com
      
      Subscribers: lins, anca, njormrod, rkroll
      
      FB internal diff: D1534081
      be42394a
    • Hannes Roth's avatar
      (Folly/Wangle) Later.then, Later.whenAllLater · 2bfde4cd
      Hannes Roth authored
      Summary:
      Adding some basic functionality to `Later` to make it easier to chain
      things.
      
      Test Plan:
      Added tests.
      
      `fbconfig -r folly/wangle && fbmake runtests_{dbg,dbgo,opt}`
      `fbconfig --clang -r folly/wangle && fbmake runtests_{dbg,dbgo,opt}`
      
      Reviewed By: hans@fb.com
      
      Subscribers: fugalh, njormrod
      
      FB internal diff: D1527826
      
      Tasks: 4993420
      2bfde4cd
    • Matt Dordal's avatar
      Rename shadowing local variables in various stats objects · 940aec84
      Matt Dordal authored
      Summary:
      The GCC shadow variable detector is quite zealous in warning about
      shadowed members. Here, we have local variables that share the name
      of member functions. Rename them so that -Wshadow doesn't complain.
      
      Test Plan:
      It didn't build, and now it does.
      
      `fbconfig -r folly && fbmake runtests`
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: fbcode-common-diffs@, njormrod
      
      FB internal diff: D1534033
      940aec84