- Electron version: 0.37.7
- Operating system: MacOS 10.11.4

Create a directory with the attached `package.json` and `main.js` files. The app just calls `app.makeSingleInstance` (code sample copied from the Electron docs) and then creates an empty window.

[package.json.txt](https://github.com/electron/electron/files/233556/package.json.txt)
[main.js.txt](https://github.com/electron/electron/files/233558/main.js.txt)

Type:

```
    rm -rf ~/Library/Application\ Support/Electron
    npm start
```

The app will display

```
    ### version 0.37.7
    ### shouldQuit:  true
```

...even though no other instance is running.

If you create an empty ~/Library/Application\ Support/Electron directory, the app runs as expected.

(Obviously, any established Electron developer will have such a directory and will not notice this bug. Their users will notice it very quickly indeed.)

chromium_src/chrome/browser/process_singleton_posix.cc
NOTREACHED();
  }
  
  void WillDestroyCurrentMessageLoop() override {
    fd_watcher_.StopWatchingFileDescriptor();
  }
 private:
  friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>;
  friend class base::DeleteHelper<ProcessSingleton::LinuxWatcher>;
  ~LinuxWatcher() override {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
    STLDeleteElements(&readers_);
    base::MessageLoopForIO* ml = base::MessageLoopForIO::current();
    ml->RemoveDestructionObserver(this);
  }
  
  void RemoveSocketReader(SocketReader* reader);
  base::MessageLoopForIO::FileDescriptorWatcher fd_watcher_;
  
  
  base::MessageLoop* ui_message_loop_;
  
  ProcessSingleton* const parent_;
  std::set<SocketReader*> readers_;
  DISALLOW_COPY_AND_ASSIGN(LinuxWatcher);
};
void ProcessSingleton::LinuxWatcher::OnFileCanReadWithoutBlocking(int fd) {