Coder Social home page Coder Social logo

goonstation / processscheduler Goto Github PK

View Code? Open in Web Editor NEW
14.0 8.0 8.0 85 KB

A BYOND SS13 Process Scheduler

License: GNU Affero General Public License v3.0

DM 88.14% JavaScript 5.03% C++ 5.91% Shell 0.34% Makefile 0.58%
byond dm goonstation process-scheduler

processscheduler's Introduction

Goonstation Welcome to the main repository for the Goonstation branch of Space Station 13.

contains technical debtmade with crayonsmade in byond

SETUP

Setup

Want to get the code up and running to test changes? This guide is the place to go.
Be sure to follow it exactly! If you need help, visit the #imcoder channel on our Discord.

COMMUNITY

Discord Discord is the place to talk to fellow players, admins, and devs in realtime. There's plenty of friendly people there, capable of answering most of your questions.

Forums The forums are where we get most of our player feedback/suggestions and talk about things in a more longform format. This is also the place to appeal any bans or give admin feedback.

Goonhub Our wiki is the place to go for any information you seek on the various constructions, items, game modes, and more in-game. There's also guides for various jobs on station!

Goonhub Goonhub is the premier place for locating statistics, data about rounds, detailed game maps, and all other links pertaining to Goonstation!

CONTRIBUTING

Contributing Guidelines Before opening a PR to this codebase, please read our contributor guidelines. It details the requirements of our PR format, and explains our changelog methodology.

Code Documentation For our auto-generated code documentation, visit our code docs! There's some good guides for portions of our codebase, and you can familiarize yourself with our various helpers.

Code Documentation To contribute code to the game, please read our code guide. It details specific DM syntax we encourage, useful things, and some performance-oriented technical discussion.

Spriting Guidelines To contribute sprites to the game, please follow our spriting guidelines! It details the various things we try to keep consistent in our sprites, such as perspective and outlining.

Audio Guidelines To contribute audio to the game, please follow our audio guidelines! It details what types of sounds we want to include, things to keep in mind, and the sound cache.

Mapping Guidelines To contribute maps to the game, please follow our mapping guidelines! It details the required pieces for a map submission. There are also guides on how to map included.

LICENSE

license-badge

All Goonstation contributions are licensed under Creative Commons BY-NC-SA. See LICENSE for more details.

Important: This means that code from Goonstation cannot be ported to codebases such as /tg/station. If you wish to port a specific feature, you must get the developer(s) to sublicense it to you under a license like AGPLv3. This also applies in the opposite direction for features ported from other codebases.

processscheduler's People

Contributors

docsingh avatar gibbed avatar volundr- avatar zewaka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

processscheduler's Issues

scheck too aggressive?

One thing I've noticed, when profiling the scheduler is abnormally high differences between processScheduler/process()'s CPU time and it's real time (this is also the case for individual subprocesses, of course, as well)---the only reason that this would happen is because of scheck under individual processes (have proved this out too).

The odd thing is, scheck seems to like to defer---a LOT, even when it's not necessary to do so; even at a steady state where nothing major is happening on the server and it's just at background levels, scheck will defer quite a bit despite the CPU not hitting anywhere close to 100 on the actual machine (by internal or BYOND measurement).

I realize that btime.dll was created to more accurate measurement of the current tick duration, but is it possible it's a bit too aggressive and is causing scheck to defer, even when it's not needed?

This would seem a bit problematic considering that deferring when there's no reason to will just end up wasting CPU and end up increasing the load on the next tick when there's no explicit reason to.

Also, is the btime.dll source available anywhere, @volundr- ?

Scheduling vs UpdatesQueues

@volundr-

Just a quick question for you, what, precisely is the advantage of running something through the update queue vs purely using the schedule or visa versa? Is there an inherent advantage to one over the other or a reason a particular control loop is better suited to using updatequeues vs scheduling? Thanks, in advance!

Unable to build btime on Ubuntu 16.04

Apt can't find lib32stdc++-4.8, but it can find lib32stdc++-4.8-dev.

Trying to build results in a bunch of linker errors:

$ make
g++ -fPIC -O3 -c btime.cpp
g++ btime.o -O3 -m32 -lstdc++ -lrt -shared -Wl,-soname,btime.so -o btime.so
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
Makefile:7: recipe for target 'link' failed
make: *** [link] Error 1

Help?

Just gonna copy my issue from para:
Not really an issue, but when I try to open my testing server, it loads, and after ~10 seconds, I get an error and the server closes:
PRECISE_TIMER_AVAILABLE is defined in btime.dm, but calling the btime library failed: Unable to load library btime.dll
This is a fatal error. The world will now shut down.
ERROR: Hook '/hook/startup/proc/checkbtime' failed or runtimed.
The btime.dll file is in the same directory as my .dmb file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.