-
Unexpected EBUSY error
Not sure how to best explain this problem so for now I'm linking the upload of the code (run make from inside the parser directory or common directory, the GNUmakefile has yet to be updated) and posting the output along with the code snippet of parser/main.c that reports the error:
Files * 930c7fdeb729310a228cbfc29bf182f3335ec1a4 * Lee Shallis / Dragonbuilder * GitLab
Code:
make DEBUG=1 run
cd ../parser/ && make DEBUG=1 run
*.c=main.c OfC.c offset.c parsed.c parser.c value.c
cc -shared -fPIC -ggdb -D DEBUG=1 -o ../common/path.c.d.o -c ../common/path.c
cd ../common/ && make DEBUG=1 build
cc -shared -fPIC -o ../libd-common.so basset.c.d.o binary.c.d.o block.c.d.o blocks.c.d.o data.c.d.o deemer.c.d.o errors.c.d.o path.c.d.o stream.c.d.o string.c.d.o takers.c.d.o tasset.c.d.o zlib.c.d.o -L ../ -Wl,-rpath,.
cc -shared -fPIC -ggdb -o ../libd-parse.so OfC.c.d.o offset.c.d.o parsed.c.d.o parser.c.d.o value.c.d.o -Wl,-rpath,. -l d-common
cc -ggdb -o ../d-parse.out main.d.d.o -Wl,-rpath,. -ld-parse -l d-common
cd ../ && ./d-parse.out shaders/shaders.glsl
pf1 given path = '/run/user/1000/6004852B2E6AD8591E29FBDA4C809B7A'
pf1 fixed path = '/run/user/1000/6004852B2E6AD8591E29FBDA4C809B7A'
pf2 given path = '/run/user/1000/78C761641034BFA66DF18B8336FF0CB1'
pf2 fixed path = '/run/user/1000/78C761641034BFA66DF18B8336FF0CB1'
Trying argument 'shaders/shaders.glsl'
main.c:65: Error 0x00000010 (16) EBUSY: 'Device or resource busy'
Compilation finished successfully.
Code:
for ( i = 1; i < argc; ++i )
{
fprintf( out, "Trying argument '%s'\n", argv[i] );
err = SeekLasset( src, argv[i], FILE_FLG_RD, 0 );
if ( err )
{
ECHO_ERROR( out, err );
goto done;
}
err = SplitSource( &Parser, src, pf1 );
if ( err )
{
ECHO_ERROR( out, err );
goto done;
}
It's about time I did my morning walk (for health reasons) so I'll respond to any questions when I get back... and post any in depth explanation I come up with while walking (if at all)
-
Never mind, turned out the values just happened to align with error codes, I forgot that I had changed part of the API since it didn't need to directly return the error, just shove it in the ALLOC* pointer and return the bytes done, in other words I had been using the bytes done as an error value instead of what it was meant to represent, fixing that screw up got me further enough to find the other bugs I was looking for, now I just need to implement the final function before I can compile custom shader coder into HLSL or GLSL (well custom in that it permits #include/#import and #ifdef OPENGL style stuff, that will come after getting #ifdef etc to work properly and with vector/matrix math supported.