-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #107: wait until fd has something to read or fail #108
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Btw I used this to reproduce the error in 1st place: for i in {1..1000}; do pytest fract4d/tests/test_fract4d.py::Test::testFDSite -s; done I found an error rate of 1~2% in my environment. |
Honestly hadn't thought to use select() or another polling mechanism.. smart choice! |
edyoung
approved these changes
May 23, 2020
edyoung
added a commit
that referenced
this pull request
Jun 7, 2020
* work in progress: create markdown-based manual * finished first pass through manual.md * exclude parsetab and lextab from pylint (#102) * Remove buildtools package (#104) No executable files ending in get.py are being installed. * Add pylint singleton-comparison check (#105) * Remove unused traceback import (#106) * fix #107: wait until fd has something to read or fail (#108) * Arbitrary precision formula experiment (#103) * examples: allow custom formula filename in cmake * [#7] example experiment: formula with arbitrary precision support * MP example: add swap idiom and other improvements * add debug information to cpp examples compilation * release prep for 4.2 (#111) * Update http links in README.md and setup.py to https (#115) * Starting point for a benchmark to compare multiple-precision libs (#112) * typo * experiment to benchmark arbitrary precision math * was running 3 benchmarks * update #112 (#113) * install google benchmark globally in exmaples infrastructure * update exmaples readme * disable frequency scaling during benchmark * remove i/o from benchmark loop * benchmark several different bit lengths * Basis for discussion on available math libraries * notes Co-authored-by: Alberto Gonzalez <[email protected]> * tweak doc generation process * Check gnofract4d executable with pylint (#117) * Install icons into the hicolor theme (#121) gnofract4d-logo.png is size 640x640. Individual icons created using ImageMagick, e.g.: magick gnofract4d-logo.png -strip -resize 256x256 logo/256x256/gnofract4d.png Install the 48x48 icon into pixmaps. * Run pylint as a separate job (#118) Report linting and testing results separately. Only run pylint once. * C++ Engine refactor (#116) * tidy worker initialization * remove unused typedef * worker: improve AA comparison * fix docker test script * remove duplicate extern declaration * workers: refactor common members into base * remove some completed todo's * organize fractfunc initialization and members * unravel coupling: pointfunc - site * refactor: extract calculation options into a struct to ease initializers * remove duplicate * move rgba type basic operations to its type definition * remove some temporaries in stworker->work * review worker member names * remove unneeded worker alloc members * remove pointFunc factory * update some old-fashion idioms on fractfunc and stats * prefix fractfunc private members * avoid clearing fates twice when autoupdating iters and period tolerance * reorganize and narrow down public/private worker interface * remove unused, mark experimental and review old fashioned code on stfractworker * calcoptions: add some comments and move asynchronous back to where it belongs * prevent uninitialized members on fractFunc * remove initialization success flag on workers * fix comment * reorganize fractfunct members and remove unused * work in progress: create markdown-based manual * finished first pass through manual.md * tweak doc generation process * generate manual with hugo new directory 'manual' generates standalone HTML for manual * rest of hugo-based manual * repoint to our copy of theme * repoint to our version of theme * install hugo-generated manual * update submodule ref * ignorance * delete docbook version of manual. so long! * fix test for doc version * fix submodule commit * install hugo in travis * better errors on doc generation * more debug output * jfc * apt version of hugo is too old, try this * maybe this * fold createdocs into setup * delete old files * work in progress: create markdown-based manual * finished first pass through manual.md * tweak doc generation process * work in progress: create markdown-based manual * generate manual with hugo new directory 'manual' generates standalone HTML for manual * rest of hugo-based manual * repoint to our copy of theme * repoint to our version of theme * install hugo-generated manual * update submodule ref * ignorance * delete docbook version of manual. so long! * fix test for doc version * fix submodule commit * install hugo in travis * better errors on doc generation * more debug output * jfc * apt version of hugo is too old, try this * maybe this * fold createdocs into setup * delete old files * delete gui createdocs It's more trouble than it is worth. Getting access violations when calling it from setup.py. Since this doesn't change much anyway, easier to maintain commands.html manually * setup.py updates distutils to setuptools make doc generation a custom build step * merge madness * build manual first * custom build command doesn't work :-( * back to generating docs separately * checkin generated doc files for consistency * restore css file * move css file inside fract4dgui * fix finding resources after install * guess which pylint to use * typo * disable that darn test * fix pylint whining Co-authored-by: Alberto Gonzalez <[email protected]> Co-authored-by: Chris Mayo <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
see #107
Note that I've removed the
fract4dc.interrupt(site)
since the test is reading messages util the "fractal is done" message is received.Also we don't need to repeat pf_load and pf_create on every iteration.
Now we use the same strategy as in
gtkfractal.py
(buffering the message parts until we have the whole) plus we useselect
package to set a timeout in case C++ crashes to not to keep waiting forever.While I was writing this message, I found the test failed because of the condition "no one on the other side", meaning C++ crashed somehow or I did something wrong :/
https://travis-ci.com/github/HyveInnovate/gnofract4d/jobs/335546177