mirror of
https://github.com/3proxy/3proxy.git
synced 2026-11-05 17:35:49 +08:00
loopmode is cb unless a configuration says otherwise, as -L2 had it for a service: its clients on event loops, a connection's data relayed by the loop itself where nothing but the sockets is between its sides. A service whose clients cannot share a thread (threadperclient: PAM, LDAP, FilePlugin, names resolved by the system, -ne) or listening for connections back (-R) still gives each a thread, as do the standalone services and builds without fibers. loopmode on and -L keep the loops with the relay on the client's stack; loopmode off and -L0 a thread for each client. The man page tells of cb. tests/run.py --loopmode takes the mode (cb, on, off) to give every configuration, with two loops; the Linux workflow runs the suite once more with a thread for each client, which is no longer what a configuration gets by default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
1.2 KiB
YAML
41 lines
1.2 KiB
YAML
name: C/C++ CI Linux
|
|
|
|
on:
|
|
push:
|
|
paths: [ '**.c', '**.h', 'Makefile.Linux', 'tests/**', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ]
|
|
pull_request:
|
|
paths: [ "**.c", "**.h", "Makefile.Linux", "tests/**", ".github/configs", ".github/workflows/c-cpp-Linux.yml" ]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
ci:
|
|
name: "${{ matrix.target }}"
|
|
strategy:
|
|
matrix:
|
|
target:
|
|
- ubuntu-latest
|
|
- ubuntu-24.04-arm
|
|
runs-on: ${{ matrix.target }}
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
# - name: configure
|
|
# run: ./configure
|
|
- name: Linux libraries
|
|
if: ${{ startsWith(matrix.target, 'ubuntu') }}
|
|
run: sudo apt-get update && sudo apt-get install -y libssl-dev libpam-dev libpcre2-dev
|
|
- name: make
|
|
run: make -f Makefile.Linux MAILPROXY=true FTP=true
|
|
- name: regression tests
|
|
run: python3 tests/run.py
|
|
- name: regression tests, a thread for each client
|
|
run: python3 tests/run.py --loopmode off
|
|
- name: mkdir
|
|
run: mkdir ~/3proxy
|
|
- name: make install
|
|
run: make -f Makefile.Linux DESTDIR=~/3proxy install
|
|
- name: make clean Linux
|
|
run: make -f Makefile.Linux clean
|