There is no need to use the main queue just for perform selector.
There is no need to use the main queue just for perform selector.

We were using the main queue to queue up a perform selector and then the code
[self sendStoredCrashReports] was immediately doing a dispatch_async.
This unnecessary thread switching is not needed.

We simplify the above logic and use dispatch_after to queue the block on
the
internal queue after a delay

Note that main queue is typically more loaded and it is better for
non-UI code
to not use the main queue. This may also help improve crash log upload.

This change also switches from @synchronized to dispatch_once as that is
faster
Reference:
http://googlemac.blogspot.com/2006/10/synchronized-swimming.html

BUG=

Change-Id: I81035149cbbf13a3058ca3a11e6efd23980f19ad
Reviewed-on: https://chromium-review.googlesource.com/441364
Reviewed-by: Joshua Peraza <f5809a5e35ec7e1bd0e25cb0a0b68bb433cf6f17@chromium.org>

bittorrent/breakpad,bittorrent/breakpad,bittorrent/breakpad,bittorrent/breakpad,bittorrent/breakpad,bittorrent/breakpad,bittorrent/breakpad