bmalloc: Don't ASSERT that all syscalls succeed
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 Oct 2015 21:04:08 +0000 (21:04 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 Oct 2015 21:04:08 +0000 (21:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=150047
<rdar://problem/22649531>

Reviewed by Mark Lam.

madvise can fail due to VM behaviors outside of our control:
copy-on-write, fork, mprotect, and other stuff.

Older darwin kernels sometimes return this error value, and new kernels
might again in future.

We haven't gained much from this ASSERT so far, so let's remove it.

Perhaps in future we can come up with a scheme that makes madvise
never fail, or that responds to failure.

* bmalloc/Syscall.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190886 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Syscall.h

index e294d32..f5e52fb 100644 (file)
@@ -1,3 +1,24 @@
+2015-10-12  Geoffrey Garen  <ggaren@apple.com>
+
+        bmalloc: Don't ASSERT that all syscalls succeed
+        https://bugs.webkit.org/show_bug.cgi?id=150047
+        <rdar://problem/22649531>
+
+        Reviewed by Mark Lam.
+
+        madvise can fail due to VM behaviors outside of our control:
+        copy-on-write, fork, mprotect, and other stuff.
+
+        Older darwin kernels sometimes return this error value, and new kernels
+        might again in future.
+
+        We haven't gained much from this ASSERT so far, so let's remove it.
+
+        Perhaps in future we can come up with a scheme that makes madvise
+        never fail, or that responds to failure.
+
+        * bmalloc/Syscall.h:
+
 2015-10-10  Dan Bernstein  <mitz@apple.com>
 
         [iOS] Remove project support for iOS 8
index 5af91b1..05748db 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 
 #include <errno.h>
 
-#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101000)
-
-#define SYSCALL(x) do { \
-    while ((x) == -1) \
-        RELEASE_BASSERT(errno == EAGAIN); \
-} while (0);
-
-#else
-
-// Older versions of OS X return EINVAL when trying to madvise COW pages. So, we
-// can't ASSERT that we'll only see EAGAIN.
 #define SYSCALL(x) do { \
     while ((x) == -1 && errno == EAGAIN) { } \
 } while (0);
 
-#endif
-
 #endif // Syscall_h