diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 08:17:12 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 08:17:12 +0000 |
commit | 3a390f49536a1f6f1655d299ff34e515af6a8bd4 (patch) | |
tree | 7f95cc3c60136e1a191e2a939cfb58cbd992fd6d /sync/internal_api/syncapi_server_connection_manager.h | |
parent | a4a9cd28821e607f14331cdce6bf57b2b35a37c2 (diff) | |
download | chromium_src-3a390f49536a1f6f1655d299ff34e515af6a8bd4.zip chromium_src-3a390f49536a1f6f1655d299ff34e515af6a8bd4.tar.gz chromium_src-3a390f49536a1f6f1655d299ff34e515af6a8bd4.tar.bz2 |
Revert 222154 "sync: Gracefully handle very early shutdown"
Makes tests very Flaky.
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Chromium&testType=sync_integration_tests&tests=TwoClientPasswordsSyncTest.SetPassphraseAndThenSetupSync
Can reproduce on local build.
> sync: Gracefully handle very early shutdown
>
> Introduce a new object to communicate cross-thread cancellation signals.
> This new object, the CancellationSignal, is protected by a lock. It
> allows the receiving thread to query whether or not a stop has been
> requested. It also allows the receiving thread to safely register a
> cross-thread callback to be invoked immediately when a stop is
> requested.
>
> This class is used to reimplement the UI thread to sync thread early
> shutdown signal. Previously, the UI thread would try to call in to
> objects owned by the sync thread. This required a workaround if the
> signal arrived very early, since we couldn't guarantee the sync thread
> had actually created those objects until later. The CancellationSignal
> is owned by the UI thread, so it is safe to call its RequestStop() at
> any point during sync initialization. The sync thread will receive the
> signal when it's ready.
>
> The new scheme has a few advantages over the old:
> - Thread ownership is simpler. The SyncBackendHost::Core, SyncManager,
> ServerConnectionManager, SyncScheduler and Syncer can now claim that
> all their member functions run on the sync thread.
> - We no longer need to implement special case logic for when a shutdown
> is requested before the SyncManager has initialized.
> - In a future CL, we can take advantage of the fact that we no longer
> require the special case to reduce inter-thread communication during
> sync startup. This will make startup simpler and, in some cases,
> improve sync startup time by as much as a few hundred milliseconds.
> - This will make it easier to address crbug.com/236451.
>
> BUG=236451
>
> Review URL: https://chromiumcodereview.appspot.com/23189021
TBR=rlarocque@chromium.org
Review URL: https://codereview.chromium.org/23658030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222205 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/syncapi_server_connection_manager.h')
-rw-r--r-- | sync/internal_api/syncapi_server_connection_manager.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sync/internal_api/syncapi_server_connection_manager.h b/sync/internal_api/syncapi_server_connection_manager.h index 8ce8dbb..74312b3 100644 --- a/sync/internal_api/syncapi_server_connection_manager.h +++ b/sync/internal_api/syncapi_server_connection_manager.h @@ -12,11 +12,9 @@ #include "base/memory/scoped_ptr.h" #include "sync/base/sync_export.h" #include "sync/engine/net/server_connection_manager.h" -#include "sync/internal_api/public/base/cancelation_signal.h" namespace syncer { -class ConnectionDisconnectHandle; class HttpPostProviderFactory; class HttpPostProviderInterface; @@ -57,16 +55,13 @@ class SYNC_EXPORT_PRIVATE SyncAPIServerConnectionManager int port, bool use_ssl, bool use_oauth2_token, - HttpPostProviderFactory* factory, - CancelationSignal* cancelation_signal); + HttpPostProviderFactory* factory); virtual ~SyncAPIServerConnectionManager(); // ServerConnectionManager overrides. - virtual scoped_ptr<Connection> MakeConnection() OVERRIDE; + virtual Connection* MakeConnection() OVERRIDE; private: - FRIEND_TEST_ALL_PREFIXES( - SyncAPIServerConnectionManagerTest, VeryEarlyAbortPost); FRIEND_TEST_ALL_PREFIXES(SyncAPIServerConnectionManagerTest, EarlyAbortPost); FRIEND_TEST_ALL_PREFIXES(SyncAPIServerConnectionManagerTest, AbortPost); |