from lldbsuite.test.decorators import *
from lldbsuite.test.concurrent_base import ConcurrentEventsBase
from lldbsuite.test.lldbtest import TestBase


@requireThreadSupport
@skipIfWindows
class ConcurrentManySignals(ConcurrentEventsBase):
    # Atomic sequences are not supported yet for MIPS in LLDB.
    @skipIf(triple="^mips")
    # This test is flaky on Darwin.
    @skipIfDarwin
    @expectedFailureNetBSD
    # Flakey in AArch64 Linux GitHub CI https://github.com/llvm/llvm-project/issues/171210.
    @skipIf(oslist=["linux"], archs=["aarch64"])
    def test(self):
        """Test 100 signals from 100 threads."""
        self.build()
        self.do_thread_actions(num_signal_threads=100)
