1. 09 Jul, 2015 4 commits
    • Yedidya Feldblum's avatar
      ThreadedExecutor. · 7cb1a017
      Yedidya Feldblum authored
      Summary: [Folly] ThreadedExecutor.
      
      It's an Executor that runs functions each in its own thread.
      
      Kind of simple. Suitable for a few types of strange cases.
      
      Reviewed By: @​hannesr
      
      Differential Revision: D2226211
      7cb1a017
    • Tudor Bosman's avatar
      Add isManaged / makeManaged · 58059b6e
      Tudor Bosman authored
      Summary: Add a way to tell whether an IOBuf (either indvidually or the whole chain)
      refers to memory that's outside of IOBuf's control (via WRAP_BUFFER). That is,
      can you assume that clone() will extend the lifetime of the memory? Is it safe
      to use clone() instead of copying the data (and avoid a copy)?
      
      Reviewed By: @simpkins
      
      Differential Revision: D2191883
      58059b6e
    • Steve O'Brien's avatar
      folly/singleton: fatal in unrecoverable error cases · 6caa6956
      Steve O'Brien authored
      Summary: Early in the startup process there may not be a default signal handler installed, and stack traces are not available; also during the startup process is when init-order fiascos occur.  Dump a stacktrace and fatal when an unregistered singleton is used.
      
      Also fatals -- with glog `LOG(FATAL)`, which triggers an ABRT signal -- on other illegal and unrecoverable usage like double-registration or circular dependency.
      
      Reviewed By: @andriigrynenko
      
      Differential Revision: D2200408
      6caa6956
    • Mark McDuff's avatar
      high init priority for FiberManagerMap data · bf52653d
      Mark McDuff authored
      Summary: Ran into a bug in D2158570 where we dtor'ing these data structures before the event bases destructed, so the assert on line 47 (of the old code) failed.
      
      Reviewed By: @andriigrynenko
      
      Differential Revision: D2198318
      bf52653d
  2. 07 Jul, 2015 6 commits
    • Sara Golemon's avatar
      Bump version to 49:1 · 28f7b88b
      Sara Golemon authored
      28f7b88b
    • Alexey Spiridonov's avatar
      Install Ubuntu 12.04 LTS dependencies for Travis CI · b160fd7b
      Alexey Spiridonov authored
      Summary: This is the first of a series of diffs to get folly, fbthrift, and bistro to run on Ubuntu 12.04 LTS, which is what powers Travis CI.
      
      It's important for folly to be easily usable with Travis CI, since everything C++ depends on it, and we really want all FB open-source projects to be monitored via continuous integration to avoid breaking their OSS builds.
      
      Thanks to @int's work on `mcrouter`, this was considerably easier than it would have been otherwise.
      
      This puts us a hop and a skip away from actually running folly's `make && make check && make install` on Travis CI. Do y'all think this is useful?
      
      Reviewed By: @yfeldblum
      
      Differential Revision: D2217441
      b160fd7b
    • Sara Golemon's avatar
      Bump version to 49:0 · 67f639c0
      Sara Golemon authored
      67f639c0
    • James Sedgwick's avatar
      folly/wangle -> wangle cutover · 0f383c37
      James Sedgwick authored
      Summary: Another stab at D2111063 now that we have the go ahead to actually open up the wangle github repo
      
      Reviewed By: @djwatson, @mdordal
      
      Differential Revision: D2178291
      0f383c37
    • Philip Pronin's avatar
      cleanup CompressedList / MutableCompressedList interfaces · 29cfa7b7
      Philip Pronin authored
      Summary: Drop those `const_cast<>` hacks.
      
      Reviewed By: @ot
      
      Differential Revision: D2217629
      29cfa7b7
    • Hans Fugal's avatar
      folly/futures Update README.md · c286b93a
      Hans Fugal authored
      Summary: This is a documentation dump, with updates from the past couple weeks. Most notably, the new information about `Future<Unit>` replacing `Future<void>`.
      
      Reviewed By: @​hannesr
      
      Differential Revision: D2211135
      c286b93a
  3. 02 Jul, 2015 7 commits
  4. 01 Jul, 2015 12 commits
    • Hans Fugal's avatar
      Future<Unit> global fixup · 812f803c
      Hans Fugal authored
      Summary: This is three codemods:
      
      * `(folly::(Future|Promise|Try))<void>` -> `\1<folly::Unit>`
      * `(Future|Promise|Try)<void>` -> `\1<Unit>`
      * add `using folly::Unit` statements where needed
      
      Then
      * undo false positives in javascript files and fibers::Promise
      
      cf D2201259, which this will land with
      
      Reviewed By: @djwatson
      
      Differential Revision: D2201801
      812f803c
    • Hans Fugal's avatar
      Future<Unit> wangle fixup · 98a8a89d
      Hans Fugal authored
      Summary: Mostly this is `s/(Promise|Future|Try)<void>/\1<Unit>/`
      
      Reviewed By: @djwatson
      
      Differential Revision: D2201272
      98a8a89d
    • Hans Fugal's avatar
      Nuke Future<void> (folly/futures) · e845ef57
      Hans Fugal authored
      Summary: Nuke Future<void> in favor of Future<Unit>, for the `folly/futures` subdirectory.
      
      Reviewed By: @djwatson
      
      Differential Revision: D2201259
      e845ef57
    • Sara Golemon's avatar
      Do an explicit test for XSI strerror_r · 489ab051
      Sara Golemon authored
      Summary: The current #if directive is a laundry list of
      "strerror_r defaults to XSI style on these platforms",
      and we keep missing some, so let's just do a proper test
      and simplify the code directives.
      
      Closes #232
      
      Reviewed By: @paulbiss
      
      Differential Revision: D2208843
      489ab051
    • Hans Fugal's avatar
      (easy) wrong test suite name · 913ddf77
      Hans Fugal authored
      Reviewed By: @yfeldblum
      
      Differential Revision: D2209197
      913ddf77
    • Vignesh Gowda's avatar
      Implement a BitVector-based list · 308f7da1
      Vignesh Gowda authored
      Summary: Implemented a BitVector Encoder and BitVector Reader with the same interface as EliasFanoCoding.h
      
      Reviewed By: @ot, @philippv
      
      Differential Revision: D2198935
      308f7da1
    • Andrey Goder's avatar
      fix? AutoTimerTest · cd927a9e
      Andrey Goder authored
      Summary: Apparently this test sometimes fails. @Gownta suggests it's because we're
      storing temproaries in StringPiece. Change it to store in a std::string, which
      should hopefully fix it.
      
      Reviewed By: @Gownta
      
      Differential Revision: D2208643
      cd927a9e
    • Hans Fugal's avatar
      make it really clear that wangle/rx is deprecated · 668192ca
      Hans Fugal authored
      Summary: More people are starting to use Rx. Yay! But they're trying to use `wangle/rx`. So make sure there's no doubt about its deprecated status.
      
      Reviewed By: @yfeldblum
      
      Differential Revision: D2196273
      668192ca
    • Sara Golemon's avatar
      Add missing include for flock() · dc5b3433
      Sara Golemon authored
      Summary: flock() expects sys/file.h which on many platforms
      is getting included as a side-effect, but on at least one
      this isn't the case.
      
      Add the explicit include to fix builds on those platforms.
      
      Closes #232
      
      Facebook
      
      Unrelated runtime failures.
      
      Reviewed By: @JoelMarcey
      
      Differential Revision: D2196306
      dc5b3433
    • Marc Horowitz's avatar
      make folly/detail/FunctionalExcept.* work if FOLLY_HAVE_BITS_FUNCTEXCEPT_H is set or not · 231b7c5a
      Marc Horowitz authored
      Summary: When doing android development, we need to compile with
      FOLLY_HAVE_BITS_FUNCTEXCEPT_H set for some flavors, and
      FOLLY_HAVE_BITS_FUNCTEXCEPT_H unset for others (primarily for tests
      run in the local (xcode) development platform).  This diff adds some
      more conditionals so it all works.
      
      In this repro, these files are never used, so this is more or less a
      noop, but this is the upstream so I'm making these changes here.
      
      Reviewed By: @Gownta
      
      Differential Revision: D2202107
      231b7c5a
    • Woo Xie's avatar
      check ReadCallback before using it · a09c094f
      Woo Xie authored
      Summary: before the first setReadCallback(), the readCallback_ is nullptr.  Thanks @siyengar for pointing out this!
      
      Reviewed By: @siyengar
      
      Differential Revision: D2203489
      a09c094f
    • Woo Xie's avatar
      move the socket setting into setReadCB() · a93384bd
      Woo Xie authored
      Summary: refactor D2201181
      
      Reviewed By: @afrind
      
      Differential Revision: D2202245
      a93384bd
  5. 29 Jun, 2015 4 commits
  6. 26 Jun, 2015 7 commits
    • Mike Arpaia's avatar
      Remove double-conversion as a source dep in OS X script · b75ef0a0
      Mike Arpaia authored
      Summary: double-conversion was recently added to homebrew, making it the last
      folly dependency to do so. this diff modifies the existing OS X
      bootstrap tool to account for that. I also added an rm for the gtest
      wget, so there wasn't a leftover zip file in your repo. alternatively,
      we could remove that and add it to the gitignore.
      
      Reviewed By: @fugalh
      
      Differential Revision: D2196000
      
      Pulled By: @sgolemon
      b75ef0a0
    • Alex Landau's avatar
      Fix passing RequestContext to executor thread · 6b6e6ae3
      Alex Landau authored
      Summary: If x->add() executes its lambda on a different thread and
      doesn't pass the context on its own, the callback wouldn't
      have the correct context set.
      
      Reviewed By: @djwatson
      
      Differential Revision: D2189318
      6b6e6ae3
    • Dave Watson's avatar
      Fix stop_ thread race · a2206d81
      Dave Watson authored
      Summary: make it std::atomic
      
      Reviewed By: @tudor
      
      Differential Revision: D2191861
      a2206d81
    • Yedidya Feldblum's avatar
      to_shared_ptr. · 9b980c75
      Yedidya Feldblum authored
      Summary: [Folly] to_shared_ptr.
      
      So you can write this:
      
          auto sptr = to_shared_ptr(getSomethingUnique<T>());
      
      Instead of this:
      
          auto sptr = shared_ptr<T>(getSomethingUnique<T>());
      
      Useful when `T` is long, such as `T = foobar::cpp2::FooBarServiceAsyncClient`.
      
      Reviewed By: @meyering
      
      Differential Revision: D2193572
      9b980c75
    • Woo Xie's avatar
      opt proxygen with newly added OpenSSL functions · 06557e1f
      Woo Xie authored
      Summary: this taks advantage of SSL_write_iovec and SSL_read_buf functions to improve CPU.  This eliminates one malloc+memcpy+free operation for all HTTPS traffic, and save up to two for small packets.
      
      It saves 10~15% CPU
      https://fburl.com/99681397
      https://fburl.com/99427544
      
      Reviewed By: @djwatson
      
      Differential Revision: D1993764
      06557e1f
    • Tom Jackson's avatar
      GroupBy · df324b0a
      Tom Jackson authored
      Reviewed By: @ot
      
      Differential Revision: D2188740
      df324b0a
    • Hans Fugal's avatar
      (easy) remove cruft comment · 17751e04
      Hans Fugal authored
      Summary: We have this now.
      
      Reviewed By: @jsedgwick
      
      Differential Revision: D2191642
      17751e04