diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 64d0a7c..9f18ea4 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -138,8 +138,7 @@
     decimal -   Test the decimal module against a large suite that
                 verifies compliance with standards.
 
-    compiler -  Allow test_tokenize to verify round-trip lexing on
-                every file in the test library.
+    cpu -       Used for certain CPU-heavy tests.
 
     subprocess  Run all tests for the subprocess module.
 
@@ -214,7 +213,7 @@
 from test import support
 
 RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network',
-                  'decimal', 'compiler', 'subprocess', 'urlfetch', 'gui')
+                  'decimal', 'cpu', 'subprocess', 'urlfetch', 'gui')
 
 TEMPDIR = os.path.abspath(tempfile.gettempdir())
 
diff --git a/Lib/test/support.py b/Lib/test/support.py
index 1f69317..e48f2b3 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -1046,7 +1046,7 @@
     return obj
 
 def requires_resource(resource):
-    if resource_is_enabled(resource):
+    if is_resource_enabled(resource):
         return _id
     else:
         return unittest.skip("resource {0!r} is not enabled".format(resource))
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index dfddfb5..8784e34 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -837,6 +837,7 @@
         self.assertEquals(b"abcdefg", bufio.read())
 
     @unittest.skipUnless(threading, 'Threading required for this test.')
+    @support.requires_resource('cpu')
     def test_threads(self):
         try:
             # Write out many bytes with exactly the same number of 0's,
@@ -1105,6 +1106,7 @@
             self.assertEqual(f.read(), b"abc")
 
     @unittest.skipUnless(threading, 'Threading required for this test.')
+    @support.requires_resource('cpu')
     def test_threads(self):
         try:
             # Write out many bytes from many threads and test they were
diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py
index 4a82229..3f45d9c 100644
--- a/Lib/test/test_tokenize.py
+++ b/Lib/test/test_tokenize.py
@@ -514,13 +514,13 @@
     True
 
 Test roundtrip on random python modules.
-pass the '-ucompiler' option to process the full directory.
+pass the '-ucpu' option to process the full directory.
 
     >>> import random
     >>> tempdir = os.path.dirname(f) or os.curdir
     >>> testfiles = glob.glob(os.path.join(tempdir, "test*.py"))
 
-    >>> if not support.is_resource_enabled("compiler"):
+    >>> if not support.is_resource_enabled("cpu"):
     ...     testfiles = random.sample(testfiles, 10)
     ...
     >>> for testfile in testfiles:
