Home | History | Annotate | Download | only in embedder
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "mojo/embedder/platform_handle.h"
      6 
      7 #include "build/build_config.h"
      8 #if defined(OS_POSIX)
      9 #include <unistd.h>
     10 #elif defined(OS_WIN)
     11 #include <windows.h>
     12 #else
     13 #error "Platform not yet supported."
     14 #endif
     15 
     16 #include "base/compiler_specific.h"
     17 #include "base/logging.h"
     18 
     19 namespace mojo {
     20 namespace embedder {
     21 
     22 void PlatformHandle::CloseIfNecessary() {
     23   if (!is_valid())
     24     return;
     25 
     26 #if defined(OS_POSIX)
     27   bool success = (close(fd) == 0);
     28   DPCHECK(success);
     29   fd = -1;
     30 #elif defined(OS_WIN)
     31   bool success = !!CloseHandle(handle);
     32   DPCHECK(success);
     33   handle = INVALID_HANDLE_VALUE;
     34 #else
     35 #error "Platform not yet supported."
     36 #endif
     37 }
     38 
     39 }  // namespace embedder
     40 }  // namespace mojo
     41