예제 #1
0
def skipIfGraalPythonWitoutThreads(reason="Threading not yet enabled"):
    try:
        import _sysconfig as syscfg
    except Exception:
        import sysconfig as syscfg
    return skipIf(
        sys.implementation.name == 'graalpython'
        and not syscfg.get_config_var('WITH_THREAD'), reason)
예제 #2
0
파일: setup.py 프로젝트: oracle/graalpython
MACOS = sys.platform == "darwin"
verbosity = '--verbose' if sys.flags.verbose else '--quiet'
darwin_native = MACOS and __graalpython__.platform_id == "native"
relative_rpath = "@loader_path" if darwin_native else r"$ORIGIN"
so_ext = get_config_var("EXT_SUFFIX")
SOABI = get_config_var("SOABI")
is_managed = 'managed' in SOABI
lib_ext = 'dylib' if MACOS else 'so'

# configure logger
logger = logging.getLogger(__name__)
logging.basicConfig(format='%(message)s', level=logging.DEBUG if sys.flags.verbose else logging.ERROR)


threaded = _sysconfig.get_config_var("WITH_THREAD")
if threaded:
    logger.debug("building C API threaded")
    import threading
    import queue

    class SimpleThreadPool:

        def __init__(self, n=None):
            self.n = n if n else os.cpu_count()
            self.running = False
            self.started = False
            self.finished_semaphore = None
            self.task_queue = queue.SimpleQueue()
            self.result_queue = queue.SimpleQueue()
예제 #3
0
def open(*args, **kwargs):
    return _pyio.open(*args, **kwargs)


for module in [_io, io]:
    setattr(module, 'open', open)
    setattr(module, 'TextIOWrapper', _pyio.TextIOWrapper)
    setattr(module, 'IncrementalNewlineDecoder',
            _pyio.IncrementalNewlineDecoder)
    setattr(module, 'BufferedRandom', _pyio.BufferedRandom)
    setattr(module, 'BufferedRWPair', _pyio.BufferedRWPair)
    setattr(module, 'BufferedWriter', _pyio.BufferedWriter)
    setattr(module, 'BufferedReader', _pyio.BufferedReader)
    setattr(module, 'StringIO', _pyio.StringIO)
    setattr(module, '_IOBase', _pyio.IOBase)
    setattr(module, 'RawIOBase', _pyio.RawIOBase)
    setattr(module, 'FileIO', _pyio.FileIO)
    setattr(module, 'BytesIO', _pyio.BytesIO)
    setattr(module, '_TextIOBase', _pyio.TextIOBase)

setattr(builtins, 'open', open)

# ----------------------------------------------------------------------------------------------------------------------
#
# patch _thread (needed for setuptools if threading is disabled)
#
# ----------------------------------------------------------------------------------------------------------------------
if not _sysconfig.get_config_var('WITH_THREAD'):
    import _dummy_thread
    sys.modules["_thread"] = _dummy_thread
예제 #4
0
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import random
import re
import sys
try:
    import _sysconfig as syscfg
except Exception:
    import sysconfig as syscfg

if syscfg.get_config_var('WITH_THREAD'):
    import threading
    import unittest
    from test import support

    from _thread import start_new_thread

    thread = support.import_module('_thread')
    import time
    import weakref

    NUMTASKS = 10
    NUMTRIPS = 3
    POLL_SLEEP = 0.010  # seconds = 10 ms

    _print_mutex = thread.allocate_lock()