1. 18 Mar, 2015 9 commits
    • Matt Dordal's avatar
      Add ctor to CPUThreadPoolExecutor to enable custom queue sizes · aae7c5b3
      Matt Dordal authored
      Summary:
      Seems useful to do without passing in a totally custom queue. Makes
      the client code a bit simpler.
      
      Test Plan: used it, saw low memory usage and no crash
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: trunkagent, iaroslav, fugalh, folly-diffs@, jsedgwick, yfeldblum, slarsen
      
      FB internal diff: D1907874
      
      Signature: t1:1907874:1426268010:3159ae339b51f5dbc7fe034644bbc968b92b072c
      aae7c5b3
    • Naizhi Li's avatar
      Add support for iovec for UDP send in folly::AsyncUDPSocket · 383ffb34
      Naizhi Li authored
      Summary:
      I will be using multi-buf UDP send soon, so adding the
      support in folly::AsyncUDPSocket
      
      Test Plan: Unit tests and turn server
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1907189
      
      Signature: t1:1907189:1426266951:046198e0a009fef085ac7eb44f054c67dfb16ba3
      383ffb34
    • Adam Simpkins's avatar
      add Cursor::isAtEnd() · efca08ae
      Adam Simpkins authored
      Summary:
      Add a helper method to efficiently check if the cursor is at the end of the
      IOBuf chain.  This is equivalent to (cursor.totalLength() > 0), but it doesn't
      need to walk the entire chain just to tell if it is at the end or not.
      
      Test Plan: Updated the unit tests to contain some checks for isAtEnd().
      
      Reviewed By: jasmeetbagga@fb.com
      
      Subscribers: trunkagent, doug, net-systems@, exa, folly-diffs@, yfeldblum
      
      FB internal diff: D1875345
      
      Signature: t1:1875345:1425006512:49ac246fd0ac7937fdcd6cf1359a841f048c444e
      efca08ae
    • Stepan Palamarchuk's avatar
      Protect unprotected · 5924c69c
      Stepan Palamarchuk authored
      Summary: This used to be protected before.
      
      Test Plan: folly/futures tests
      
      Reviewed By: andrii@fb.com
      
      Subscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum
      
      FB internal diff: D1907063
      
      Signature: t1:1907063:1426116657:d7430304d5f72a048396e83f8dc6b5a92198fb29
      5924c69c
    • Matt Dordal's avatar
      CPUThreadPoolExecutor's default queue is quite big · 905b5c10
      Matt Dordal authored
      Summary:
      By default, CPUThreadPoolExecutor uses 100 MB of rss for the CPU queue. This is
      substantially higher than expected.
      
      Reduce the default queue size so that it uses much less memory upfront, down
      to about 6 MB going by the heap profile.
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: mwa, ott, iaroslav, jrsherwood, aflock, slarsen, davejwatson, trunkagent, fugalh, folly-diffs@, jsedgwick, yfeldblum
      
      FB internal diff: D1900539
      
      Tasks: 6453427
      
      Signature: t1:1900539:1426103805:34fb7b081058fbde89370b5d9ec24ea572c4b0e2
      905b5c10
    • Nathan Bronson's avatar
      fix Makefile.am formatting · 10cd40f6
      Nathan Bronson authored
      Summary: D1798929 broke the automake folly build
      
      Test Plan:
      1. careful visual inspection
      2. build
      
      Reviewed By: alikhtarov@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1906281
      
      Signature: t1:1906281:1426106340:621f1e7d2fb18ae2ec5dc604dea0d8ad4353486e
      10cd40f6
    • Nathan Bronson's avatar
      SharedMutex - a small fast scalable reader-writer lock · 349834b3
      Nathan Bronson authored
      Summary:
      SharedMutex is a reader-writer lock.  It is small, very fast, scalable
      on multi-core, and suitable for use when readers or writers may block.
      Unlike most other reader-writer locks, its throughput with concurrent
      readers scales linearly; it is able to acquire and release the lock
      in shared mode without cache line ping-ponging.  It is suitable for a
      wide range of lock hold times because it starts with spinning, proceeds
      to using sched_yield with a preemption heuristic, and then waits using
      futex and precise wakeups.
      
      SharedMutex provides all of the methods of folly::RWSpinLock,
      boost::shared_mutex, boost::upgrade_mutex, and C++14's
      std::shared_timed_mutex.  All operations that can block are available in
      try, try-for, and try-until (system_clock or steady_clock) versions.
      Both reader-priority and writer-priority versions are provided.
      Writer-priority is the default at the moment.
      
      In my tests SharedMutex is as good or better than the other reader-writer
      locks in use at Facebook for almost all use cases, sometimes by a wide
      margin.  (If it is rare that there are actually concurrent readers
      then RWSpinLock can be a few nanoseconds faster.)  I compared it to
      folly::RWSpinLock, folly::RWTicketSpinLock64, boost::shared_mutex,
      pthread_rwlock_t, and an internal RWLock that uses spinlocks to guard
      its state and pthread_mutex_t+pthread_cont_t to perform blocking.
      (The other ReadWriteMutex-s I found use pthread_rwlock_t underneath.)
      It is generally as good or better than the rest when evaluating size,
      speed, scalability, or latency outliers.  In the corner cases where
      it is not the fastest (such as single-threaded use or heavy write
      contention) it is never very much worse than the best.  See the bottom
      of SharedMutexTest.cpp for lots of microbenchmark results.
      
      Test Plan:
      1. new unit tests
      2. new microbenchmarks included here
      3. uncommitted microbenchmark from bmaurer's RWSleepLock
      4. replace admarket's RWSpinLock and RWLock with SharedMutex, observe
      neutral adindexer perf in canary
      5. replace multifeed's thrift ReadWriteLock with SharedMutex, observe
      neutral perf in canary
      
      Reviewed By: hans@fb.com
      
      Subscribers: fbcode-common-diffs@, tnovak, march, davejwatson, trunkagent, philipp, folly-diffs@, yfeldblum, bwatling, bmaurer, bol, marccelani, adri, strager, macsyz, dzhulgakov, zamsden
      
      FB internal diff: D1798929
      
      Signature: t1:1798929:1425575976:1c9221317eaa47628a2b8c374f90c7a2d4e3f0f9
      349834b3
    • Adrian Hamza's avatar
      Add null check to avoid crash in unit tests that use mock singletons. · 82bb8621
      Adrian Hamza authored
      Summary: Some unit tests owned by my team are failing due to segmentation fault in SingletonHolder<T>::registerSingletonMock -> SingletonHolder<T>::destroyInstance.
      
      Test Plan: Run folly unit tests and my unit tests.
      
      Reviewed By: henryf@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1873889
      
      Signature: t1:1873889:1425925156:29d54092939d7e9debea3fd55f7105fd320e987e
      
      Blame Revision: 91f4942e
      82bb8621
    • Andrey Goder's avatar
      Add JSON Schema Validator · e87194b3
      Andrey Goder authored
      Summary:
      This is a validator for  JSON schema (http://json-schema.org/) that works on
      folly::dynamic. Apparently there are no good open source ones for C++,
      especially not if you want to use folly::dynamic. I am going to use this to
      validate JSON configs.
      
      It supports basically everything from the standard, except for fetching schemas
      via http, and using id refs. It supports enough to check schemas against the
      metaschema.
      
      Currently you can define a schema that will crash on validation, if it's
      infinitely self-recursive. See the unit test case that reproduces this.
      Fixing this seems hard though, so I didn't bother. It would also probably
      be slower for normal usage.
      
      Test Plan: unit test
      
      Reviewed By: lesha@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1847657
      
      Signature: t1:1847657:1425605163:635dc523aeda1b588c3634d0dc1a48d50a53db79
      e87194b3
  2. 06 Mar, 2015 2 commits
    • Viswanath Sivakumar's avatar
      Bump version to 30:0 · 88fb213f
      Viswanath Sivakumar authored
      88fb213f
    • Mark Isaacson's avatar
      Remove unnecessary includes from FBVector · 77590b52
      Mark Isaacson authored
      Summary:
      Remove unnecessary includes from FBVector
      
      Gonna see just how cleaned-up sandcastle really is :P
      
      Test Plan: Fix errors shown in contbuild
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: cold-storage-diffs@, jcoens, ldbrandy, trunkagent, oleksandr, netego-diffs@, mmandal, weiyan, ws_dev_diffs, jmkaldor, jhunt, fbcode-common-diffs@, njormrod, folly-diffs@, yfeldblum
      
      FB internal diff: D1873145
      
      Signature: t1:1873145:1425505591:9cb345053833afa70f543e2f7acd310ab80b8676
      77590b52
  3. 05 Mar, 2015 6 commits
    • Nicholas Ormrod's avatar
      Bump version to 29:0 · 01bd28a3
      Nicholas Ormrod authored
      01bd28a3
    • Dave Watson's avatar
      httpserver on serverbootstrap · 321807e1
      Dave Watson authored
      Summary:
      Cleans up the httpserver startup code nicely.  The only major change to ServerBootstrap was a check if bind failed to throw an exception.
      
      (depends on D1732895)
      
      Test Plan:
      fbconfig -r folly/wangle/bootstrap proxygen/httpserver; fbmake runtests
      
      fbconfig -r dfsrouter; fbmake runtests
      
      Reviewed By: hans@fb.com
      
      Subscribers: yfeldblum, cgheorghe, trunkagent, doug, fugalh, bmatheny, folly-diffs@, jsedgwick
      
      FB internal diff: D1800100
      
      Signature: t1:1800100:1424733970:67a61a22d2affadea16d2fd725003915326077b2
      321807e1
    • Sara Golemon's avatar
      Bump version to 28:0 · b252ef02
      Sara Golemon authored
      b252ef02
    • Ram Kumar Rengaswamy's avatar
      Bugfix uriEscapeTable generate. · 47e8b72f
      Ram Kumar Rengaswamy authored
      Summary:
      generate_escape_tables.py uses python range function which does not include the end of the range.
      
      Closes #131
      
      Test Plan: See attached test case.
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1871692
      
      Signature: t1:1871692:1425076132:2438ab7554fe87bdef17c82ff27713811a270d7c
      47e8b72f
    • Nicholas Ormrod's avatar
      Add FunctionScheduler to Makefile.am · 5c483dd4
      Nicholas Ormrod authored
      Summary: D1845525 was missing some makefile changes.
      
      Test Plan: Examine similar change in D1732895
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: sdwilsh, folly-diffs@, yfeldblum
      
      FB internal diff: D1890197
      
      Signature: t1:1890197:1425526255:e9a23fd96a89d4463cbdfda1385d4fd5f5781e8e
      5c483dd4
    • Hans Fugal's avatar
      MoveWrapper::move() · d08270e6
      Hans Fugal authored
      Summary: sugar providing `foo.move()` instead of `std::move(*foo)`.
      
      Test Plan: Inspection. Using it in another diff.
      
      Reviewed By: yfeldblum@fb.com, hannesr@fb.com
      
      Subscribers: trunkagent, exa, folly-diffs@, yfeldblum
      
      FB internal diff: D1882208
      
      Signature: t1:1882208:1425331389:a9c09ad2739838c829e2afdad64e985810154226
      d08270e6
  4. 03 Mar, 2015 23 commits
    • Alecs King's avatar
      Bump version to 27:0 · 75278c63
      Alecs King authored
      75278c63
    • Subodh Iyengar's avatar
      Add test for running after terminate · 7bbdffca
      Subodh Iyengar authored
      Summary:
      Add a test to check what will happen if
      someone tries to run a job on evb after
      termination.
      
      Test Plan: Unit tests
      
      Reviewed By: seanc@fb.com
      
      Subscribers: seanc, folly-diffs@, yfeldblum
      
      FB internal diff: D1882308
      
      Signature: t1:1882308:1425333248:7ab6692eb0b866fcc9685048eb385bacd90023d1
      7bbdffca
    • Hans Fugal's avatar
      makeMoveWrapper(lvalue) · bc847809
      Hans Fugal authored
      Summary: Because why not?
      
      Test Plan: new unit tests
      
      Reviewed By: hannesr@fb.com
      
      Subscribers: trunkagent, exa, folly-diffs@, yfeldblum, marccelani
      
      FB internal diff: D1866123
      
      Signature: t1:1866123:1425331395:742369597757456e5925af55c5d4198b607126f1
      bc847809
    • Sara Golemon's avatar
      MacOS doesn't have malloc_usable_size() · 66a07640
      Sara Golemon authored
      Summary:
      Use malloc_size() instead
      
      Test Plan: HHVM build on MacOS
      
      Reviewed By: joelm@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1875364
      
      Signature: t1:1875364:1425061479:7d8cec757c186fa8c30b6500fca6b2fe4c1ed137
      66a07640
    • Dor Gross's avatar
      Creating a flatten() method to get the inner Future<T> value out of a Future<Future<T>>. · 1f6e3142
      Dor Gross authored
      Summary: Method will only be applicable for types of the form Future<Future<T>>, calling flatten() on a Future<T> where <T> != Future<R> for any <R> will result with a compile time error.
      
      Test Plan: Added tests in FutureTest.cpp.
      
      Reviewed By: hans@fb.com
      
      Subscribers: ldbrandy, trunkagent, folly-diffs@, jsedgwick, yfeldblum, icanadi
      
      FB internal diff: D1843581
      
      Tasks: 6166903
      
      Signature: t1:1843581:1424399517:7146924db3c238b77dd309f1d5916e44a7e81968
      1f6e3142
    • zhaokai's avatar
      Add const to the variable: needle · 6b9d347f
      zhaokai authored
      Summary:
      Make it clear that the variable is const
      
      Closes #139
      
      Test Plan:
      authored tested, contbuild
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1878361
      
      Signature: t1:1878361:1425071448:6871577ddb34f4a8dc30ea37842f9950c3825dde
      6b9d347f
    • zhaokai's avatar
      Update UnitTest of MapUtilTest.cpp · 3f179169
      zhaokai authored
      Summary:
      1. Split the original simple test
      2. Add unit test of function: get_ref_default
      
      Closes #138
      
      Test Plan: authored tested, contbuild
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1878603
      
      Signature: t1:1878603:1425073330:914a2365fa648142d11b41b387423d78e52f2e08
      3f179169
    • zhaokai's avatar
      Fix comment of Benchmark.h · afe8b202
      zhaokai authored
      Summary:
      Remove one of the "one" in the comment of BENCHMARK
      
      Closes: #140
      
      Test Plan: Inspection.
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1877997
      
      Signature: t1:1877997:1425063475:c53c09d105809de9a9070f464fb0571a4dd1e5d1
      afe8b202
    • Dave Watson's avatar
      attempt at putting thrift2 on ChannelPipeline · 0f3fabf1
      Dave Watson authored
      Summary:
      Basically a ripoff of Dave's D1483148 but with ChannelPipeline instead of rx.
      There's going to be a long tail of unit tests here, this is still pretty broken...
      
      Not convinced that this is the way to go but I wanted to get a feel for what it would be like to plug it into an IRL system.
      I think the simplicity/clarity of the handler implementations and to some extent the pipeline spec is an improvement over the rx way
      but I'm less sure about everything else.
      
      Test Plan: compiles and kind of works some of the time but not really
      
      Reviewed By: alandau@fb.com
      
      Subscribers: wormhole-diffs@, mcduff, hitesh, doug, yfeldblum, folly-diffs@, jsedgwick, subodh, andrewcox, njormrod, trunkagent, fugalh, alandau, bmatheny, mshneer
      
      FB internal diff: D1618704
      
      Tasks: 5981284
      
      Signature: t1:1618704:1424980854:83c6193b1156be2ec65cf79f9f2ad1af670da7f8
      0f3fabf1
    • Monica Lee's avatar
      Add willEqual to C++ Futures Code · 42ab2462
      Monica Lee authored
      Summary: Added willEqual function and wrote unit tests for it.
      
      Test Plan: fbconfig --clang folly/futures && fbmake runtests
      
      Reviewed By: hans@fb.com
      
      Subscribers: hannesr, trunkagent, folly-diffs@, jsedgwick, yfeldblum
      
      FB internal diff: D1859840
      
      Tasks: 6166911
      
      Signature: t1:1859840:1424967149:865ee96ab4d3f5dbf17eb371b2ac3ccb5066ac87
      42ab2462
    • Nathan Bronson's avatar
      support IndexedMemPool for types without default constructor · a0359850
      Nathan Bronson authored
      Summary:
      This diff gives IndexedMemPool<T> emplace-like semantics when T
      is not trivial.
      
      Test Plan:
      1. new unit tests
      2. LifoSem benchmark
      
      Reviewed By: march@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1874941
      
      Signature: t1:1874941:1424987308:61bbe7b7e5e6df625a6208cd873c65e523a79fa0
      a0359850
    • Nicholas Ormrod's avatar
      Copyright 2014->2015 · 275ca94d
      Nicholas Ormrod authored
      Summary:
      Update copyright notices in folly to 2015
      
      find folly/ -type f | xargs sed -i 's/Copyright 2014 Facebook, Inc./Copyright 2015 Facebook, Inc./g'find . -type f | xargs sed -i 's/Copyright 2014 Facebook, Inc./Copyright 2015 Facebook, Inc./g'
      
      Test Plan:
      fbconfig -r folly && fbmake runtests
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: ldbrandy, shilin, sdwilsh, fugalh, njormrod, folly-diffs@, jsedgwick, yfeldblum
      
      FB internal diff: D1869183
      
      Signature: t1:1869183:1424823514:a2dd33741a86bf099d5c9e3d8702e6cca6dd672f
      275ca94d
    • Haim Grosman's avatar
      EventBase::runAfterDelay to throw an exception · 1a61493f
      Haim Grosman authored
      Summary:
      EventBase::runAfterDelay to throw an exception in case it fails to
      schedule a proper execution of the given callback
      (instead of silently returning false)
      
      it appears to be the right thing to do, since:
      @davejwatson: Digging through the layers of code, it appears this can only fail if
      epoll_ctl() with EPOLL_CTL_ADD fails. Ignoring libevent bugs, it looks
      like the only relevant errors could be ENOMEM or ENOSPC. So
      nonrecoverable
      
      Test Plan: Unit tests
      
      Reviewed By: anca@fb.com
      
      Subscribers: yzhan, haijunz, simpkins, net-systems@, varunk, zeus-diffs@, nli, dfechete, fugalh, atlas2-eng@, alandau, bmatheny, everstore-dev@, zhuohuang, wormhole-diffs@, anca, mwa, jgehring, oujin, alikhtarov, fuegen, mshneer, wch, bil, sanketh, zippydb, maxwellsayles, jsedgwick, trunkagent, fbcode-common-diffs@, chaoyc, search-fbcode-diffs@, andrewcox, unicorn-diffs@, tw-eng@, xie, kennyyu, yfeldblum, folly-diffs@, davejwatson
      
      FB internal diff: D1805125
      
      Signature: t1:1805125:1424927912:8bebb4c3b9f1fa189c0ce97b12cdb8f95dba97ae
      1a61493f
    • John Ehrhardt's avatar
      Updating Folly Formatting's use of separators for Decimal Integers 'd' and Numbers 'n' · 74651ade
      John Ehrhardt authored
      Summary:
      Updating Folly Formatting's use of separators for Decimal Integers 'd' and Numbers 'n'.
      Updated Decimal Integers 'd' use of separators to directly use commas ',' and grouping of 3 digits.
      Updated Numbers use of separators and grouping to follow locale settings.
      
      Test Plan:
      Wrote unit tests to validate the insertion of thousandsSeparators works.
      Note that the numbers unit test does not modify the locale since the test cases are not thread safe.
      
      Reviewed By: lesha@fb.com
      
      Subscribers: tudorb, trunkagent, folly-diffs@, yfeldblum, aric
      
      FB internal diff: D1821156
      
      Tasks: 6087521
      
      Signature: t1:1821156:1424923837:d0fb383a07fd733375b72b1905e6112afa141265
      74651ade
    • Sean Cannella's avatar
      Reduce AsyncSocket code size · 1cb4f91b
      Sean Cannella authored
      Summary:
      Manual inspection of AsyncSocket.o shows the constructors are generating ugly
      (and large) code. Call the smaller constructors instead of duplicating the code. This
      reduces the debug .o size from ~1.9MB to ~1.6MB.
      
      Test Plan: existing tests
      
      Reviewed By: benyluo@fb.com
      
      Subscribers: mzlee, folly-diffs@, yfeldblum, mathieubaudet, subodh, pgriess, benyluo
      
      FB internal diff: D1870896
      
      Signature: t1:1870896:1424885638:d37fc79c0f88d04109c8bb73e632dc506b9f773b
      1cb4f91b
    • Hans Fugal's avatar
      Future::ensure · 0f6e3043
      Hans Fugal authored
      Summary: Unconditionally execute the action, passthrough semantics.
      
      Test Plan: new unit test
      
      Reviewed By: bmatheny@fb.com
      
      Subscribers: trunkagent, exa, folly-diffs@, yfeldblum, jsedgwick
      
      FB internal diff: D1868837
      
      Tasks: 6166860
      
      Signature: t1:1868837:1424820181:0e83f54b59d7091dac60ab65feb387992e8ae89c
      0f6e3043
    • Sven Over's avatar
      folly/FileUtil.h: fix compiler warning signed/unsigned comparison · e58f1ced
      Sven Over authored
      Summary:
      writeFull() returns ssize_t and without proper casting, comparing
      it with data.size() triggers a compiler warning (which is
      treated as an error) in the gcc-4.9-glibc-2.20 toolchain.
      
      Test Plan: fbmake runtests
      
      Reviewed By: mhx@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1870710
      
      Signature: t1:1870710:1424874592:f51026c35196d763ad4b192d43c8ccee0255b41d
      e58f1ced
    • Nicholas Ormrod's avatar
      Improvement fbvector.computePushBackCapacity · a5709e63
      Nicholas Ormrod authored
      Summary:
      See the github pull request at https://github.com/facebook/folly/issues/135
      
      Important optimizations: remove one of the branches and change ##empty()## to ##capacity()==0##
      
      Test Plan:
      Ran extended fbvector test suite (re-enabled in experimental/njormrod)
      
      Also
      
      fbconfig -r folly && fbmake runtests
      
      Reviewed By: markisaa@fb.com
      
      Subscribers: trunkagent, sdwilsh, njormrod, folly-diffs@, yfeldblum
      
      FB internal diff: D1869112
      
      Tasks: 6338531
      
      Signature: t1:1869112:1424823901:d2d7331aef82edad1e8c159005cc1c7185550d0c
      a5709e63
    • Andrei Alexandrescu's avatar
      Removing call to google::setThreadName from FunctionScheduler · 2d160748
      Andrei Alexandrescu authored
      Summary: Funnily, google::setThreadName is Facebook specific: it's introduced only in the FB build of glog. This diff removes the call because folly should not depend on FB's glog.
      
      Test Plan: made sure the line was deleted
      
      Reviewed By: ldbrandy@fb.com
      
      Subscribers: net-systems@, folly-diffs@, yfeldblum
      
      FB internal diff: D1868249
      
      Tasks: 6345935
      
      Signature: t1:1868249:1424812595:2a084754d614ab9b7b6168454f33638882e3f6db
      2d160748
    • Praveen Kumar's avatar
      EmulatedFutexAtomic doesn't copy or move · da22f9c3
      Praveen Kumar authored
      Summary:
      EmulatedFutexAtomic concisely says here that it doesn't copy construct,
      move construct, copy assign, or move assign.
      
      Closes #130
      
      Test Plan:
      Inspection and all unit tests.
      
      ```
      Summary (total time 66.97s):
      PASS: 2029
      FAIL: 0
      SKIP: 0
      FATAL: 0
      TIMEOUT: 0
      ```
      
      Reviewed By: ngbronson@fb.com
      
      Subscribers: folly-diffs@, yfeldblum
      
      FB internal diff: D1868033
      
      Signature: t1:1868033:1424808823:d9dd618981b29b5949c00190d69d670d96e60e07
      da22f9c3
    • Beny Luo's avatar
      add preprocessor to hide unused functions · 832c3155
      Beny Luo authored
      Summary:
      encodeVarintToIOBuf and decodeVarintFromCursor are not used when
      FOLLY_HAVE_LIBLZMA and FOLLY_HAVE_LIBLZ4 are false, which will trigger
      -Werror,-Wunused-function on compile on mobile.
      
      Test Plan: unit test
      
      Reviewed By: seanc@fb.com
      
      Subscribers: meisner, trunkagent, seanc, folly-diffs@, yfeldblum
      
      FB internal diff: D1864016
      
      Signature: t1:1864016:1424702813:75535ea92ac16385ce5c272d93bba507ccbb67a1
      832c3155
    • Andrii Grynenko's avatar
      Fix folly::Singleton DFATAL · 5f2d43af
      Andrii Grynenko authored
      Summary:
      Previously leak-fatal could never happen because we were incorrectly checking singleton state.
      Sending this diff to see how many tests will actually fail and potentially fix worst offenders.
      
      Test Plan: unit tests
      
      Reviewed By: stepan@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1838405
      
      Signature: t1:1838405:1424478983:94cda86ed57f38b0cf626b74804fbc168d182c66
      5f2d43af
    • Andre Pinto's avatar
      Optimize perf of EventBase with new option. · 2f3b69cc
      Andre Pinto authored
      Summary:
      Add option to disable time measurement in EventBase::loopBody()
      to improve performances when time measurement is not used.
      
      Test Plan:
      Unit tests, benchmarking and manual tests.
      
      Reviewed By: pavlo@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum
      
      FB internal diff: D1846020
      
      Tasks: 6086197
      
      Signature: t1:1846020:1424459703:9686a84027e1137ee43eb0458b0baa4fee3a8abf
      2f3b69cc