Commit graph

90 commits

Author SHA1 Message Date
David Schleef
2b647a953c Cleaned up cothread_create(), added comments, added code to unmap a guard page.
Original commit message from CVS:
Cleaned up cothread_create(), added comments, added code to unmap a
guard page.
2002-11-19 02:25:52 +00:00
Thomas Vander Stichele
8fbc440cc3 a little cleanup also, clear the global we use here so we can reuse cothreads
Original commit message from CVS:
a little cleanup
also, clear the global we use here so we can reuse cothreads
2002-11-18 22:44:47 +00:00
David Schleef
179a63446c Move stack_top code from cothread_create() to cothread_context_init(), since we only need to calculate it once.
Original commit message from CVS:
Move stack_top code from cothread_create() to cothread_context_init(),
since we only need to calculate it once.
2002-11-15 09:51:41 +00:00
Thomas Vander Stichele
eb5368cbf7 on the negative side, I have to add the mmap back or else it segfaults on the positive side, with ds's fix for stack_...
Original commit message from CVS:
on the negative side, I have to add the mmap back or else it segfaults
on the positive side, with ds's fix for stack_top, I haven't had a
segfault in any of the thread tests since ;)
Let's cross fingers here
2002-11-14 13:35:13 +00:00
David Schleef
5fa7e059eb Fix up allocation of stack space for a cothread. Previous code did not allow for the underlying threading model to i...
Original commit message from CVS:
Fix up allocation of stack space for a cothread.  Previous code did
not allow for the underlying threading model to insert an unmapped
guard page.
2002-11-14 11:14:52 +00:00
Wim Taymans
a92661f761 Small cleanup
Original commit message from CVS:
Small cleanup
2002-11-02 13:15:10 +00:00
David Schleef
81c1506cd4 remove debugging message
Original commit message from CVS:
remove debugging message
2002-11-02 00:41:11 +00:00
David Schleef
e7db7a70ad Change from pthreads to GThreads
Original commit message from CVS:
Change from pthreads to GThreads
2002-11-01 21:38:39 +00:00
Thomas Vander Stichele
3a5b408709 useful comments change thread -> cothread in varnames where it's applicable code cleanups
Original commit message from CVS:
* useful comments
* change thread -> cothread in varnames where it's applicable
* code cleanups
2002-09-12 18:56:31 +00:00
Thomas Vander Stichele
76d31f5af1 readable cleanups
Original commit message from CVS:
readable cleanups
2002-08-13 14:11:33 +00:00
Thomas Vander Stichele
c1e2b0009b fix for older glibc's
Original commit message from CVS:
fix for older glibc's
2002-08-13 13:56:05 +00:00
Wim Taymans
1975b199d2 Turn some g_prints into g_warnings as that's what they really are
Original commit message from CVS:
Turn some g_prints into g_warnings as that's what they really are
2002-07-28 01:04:33 +00:00
Andy Wingo
efafdb2aa6 be more lenient when loading unconnected pads
Original commit message from CVS:
be more lenient when loading unconnected pads
2002-07-12 19:13:19 +00:00
Thomas Vander Stichele
a64e400a97 lioux's virtual patch
Original commit message from CVS:
lioux's virtual patch
2002-07-11 21:38:23 +00:00
Wim Taymans
80c371342b This one removes the unused code..
Original commit message from CVS:
This one removes the unused code..
2002-07-08 19:10:11 +00:00
Christian Schaller
cc682cae6c commented out the munmap stuff again
Original commit message from CVS:
commented out the munmap stuff again
2002-06-29 16:26:47 +00:00
Thomas Vander Stichele
a155db2bfb more protective programming cothread 0 cleans up higher cothreads if they're still around use a magic number to prote...
Original commit message from CVS:
more protective programming
cothread 0 cleans up higher cothreads if they're still around
use a magic number to protect against mem corruption in the struct
flames welcome
2002-06-28 10:58:05 +00:00
Thomas Vander Stichele
781f489e87 no newlines
Original commit message from CVS:
no newlines
2002-06-27 22:24:36 +00:00
Thomas Vander Stichele
aa55a0450d no newlines
Original commit message from CVS:
no newlines
2002-06-27 22:23:51 +00:00
Thomas Vander Stichele
ef2f6e1fc4 ok, my latest added error checking and stuff this reverts uraeus's patch but should tell us what goes wrong with munmap
Original commit message from CVS:
ok, my latest added error checking and stuff
this reverts uraeus's patch but should tell us what goes wrong with munmap
2002-06-27 22:17:17 +00:00
Christian Schaller
7cc370b0bf Fixes suggested by thomasvs to get rhythmbox working with basic threads
Original commit message from CVS:
Fixes suggested by thomasvs to get rhythmbox working with basic threads

- int res;
+ int res = 0;

-  res = munmap ((void *) thread, COTHREAD_STACKSIZE);
+/*    res = munmap ((void *) thread, COTHREAD_STACKSIZE); */
2002-06-27 21:35:56 +00:00
Thomas Vander Stichele
8433fe5775 some debug info remove the preventive munmap reinstate the other munmap for cothread stocks which really should be th...
Original commit message from CVS:
some debug info
remove the preventive munmap
reinstate the other munmap for cothread stocks which really should be there IMO
2002-06-27 15:52:13 +00:00
Thomas Vander Stichele
b7bc06aee5 ok, this seems to be the right fix for the basic scheduler.
Original commit message from CVS:
ok, this seems to be the right fix for the basic scheduler.
I'd appreciate it if :
a) someone looks over these minimal changes and tells me if they're done
in the right way (especially the alignment argument ;))
b) others run lots of pipes with basic and tell me if they still have
issues
If all goes well I want to revert to the basic scheduler and do a release
2002-06-26 08:22:17 +00:00
Thomas Vander Stichele
f4046ced1c hahaha
Original commit message from CVS:
hahaha
2002-06-25 12:09:32 +00:00
Thomas Vander Stichele
1ecc22c610 blind flying adding more debug output cleaning up according to man pages
Original commit message from CVS:
blind flying
adding more debug output
cleaning up according to man pages
2002-06-25 12:08:10 +00:00
Wim Taymans
32f702aa20 Better error handling when mmap'ing
Original commit message from CVS:
Better error handling when mmap'ing
2002-06-15 16:12:20 +00:00
Wim Taymans
e4637a0a82 Some cleanups, more debugging info
Original commit message from CVS:
Some cleanups, more debugging info
2002-05-29 14:59:48 +00:00
Thomas Vander Stichele
de6c6bcc5d doc fixes
Original commit message from CVS:
doc fixes
2002-04-19 10:26:56 +00:00
Wim Taymans
d7a5d173c8 Documentation updates
Original commit message from CVS:
Documentation updates
Added dump to identity
Fix some warnings in gstelement
2002-03-31 14:04:50 +00:00
Andy Wingo
ed9b628168 filter newlines out of GST_DEBUG statements to reflect new core behavior fixes to adder's caps, again
Original commit message from CVS:
* filter newlines out of GST_DEBUG statements to reflect new core behavior
* fixes to adder's caps, again
2002-03-24 22:07:09 +00:00
Benjamin Otte
aadf99137f make sure cothread->priv is NULL when uninited because we now check it (added debugging line to gst_bin_remove while ...
Original commit message from CVS:
make sure cothread->priv is NULL when uninited because we now check it
(added debugging line to gst_bin_remove while debugging)
2002-02-24 19:08:30 +00:00
Wim Taymans
929b4bd3d1 Added a private field to the cothread state.
Original commit message from CVS:
Added a private field to the cothread state.
2002-02-23 13:41:17 +00:00
Wim Taymans
90355128b5 - Removed deprecated buffer flags.
Original commit message from CVS:
- Removed deprecated buffer flags.
- removed gst_element_signal_eos, replaced with gst_element_set_eos
to set the object to PAUSED, signal an eos event etc..
- small updates to documentation
- repair some plugins
2001-12-28 20:20:26 +00:00
Wim Taymans
e7f54b1e74 - Added a function to get the currently executing cothread
Original commit message from CVS:
- Added a function to get the currently executing cothread
- Removed some useless includes
- _interrupt now returns a boolean so the behaviour after the interrupt
can be controlled by the scheduler.
- Added a better way to set/get the default scheduler.
- make thread and pipeline get the default scheduler.
2001-12-27 00:47:41 +00:00
Wim Taymans
bd128c199c Tee Fixes. added cothread_stop (not used) improved the pad event dispatcher.
Original commit message from CVS:
Tee Fixes.
added cothread_stop (not used)
improved the pad event dispatcher.
added an event_received signal on the pad.
do less state changes in the autoplugger.
small scheduler fix.
2001-12-25 02:15:46 +00:00
Wim Taymans
c05a4511cd Removed the munmap for now
Original commit message from CVS:
Removed the munmap for now
2001-12-23 23:36:44 +00:00
Wim Taymans
6c538d527b Fix an event leak
Original commit message from CVS:
Fix an event leak
Ne need to save signals on longjmp
2001-12-23 14:50:44 +00:00
Wim Taymans
bdd6df925e Better cothread cleanup
Original commit message from CVS:
Better cothread cleanup
2001-12-23 14:27:48 +00:00
Wim Taymans
467035ce70 Never destroy the current cothread.
Original commit message from CVS:
Never destroy the current cothread.
Don't try to signal the scheduler if we don't have one
2001-12-22 23:19:17 +00:00
Wim Taymans
087dee1f62 This is an attempt at not segfaulting on errors but reporting some usefull info instead.
Original commit message from CVS:
This is an attempt at not segfaulting on errors but reporting some
usefull info instead.
- bin changes so errors can propagate.
- changed the _FAST macros to _CAST because that is what they do.
- removed all references to cothreads out of the core, they are
really a scheduler issue, handler with a sched_private gpointer.
- added a live buffer count, for debugging buffer leaks.
- added error checking in gst_scheduler_state_transition this solves the
"out of cothreads" problem.
- GST_ELEMENT_NO_ENTRY == GST_ELEMENT_INFINITE_LOOP
- added 2 private element flasg for use by the scheduler
(_COTHREAD_STOPPING) is now
- added scheduler entry points:
- _yield : to create possible scheduling points.
- _interrupt: to stop execution of an element.
- _error: to signal en error condition to the scheduler.
- improved error messages for pads.
- signal gst_element_error where appropriate.
- added the a new bin to the parent before entering it so one can reference
its children.
- queue memleak fixes on dispose.
- added possible deadlock detection in queue (turned off be default)
- GstBasicScheduler is a real class of its own now, hiding its internal
variables.
- GST_ELEMENT_IS_COTHREAD_STOPPING is gone. either call explicit _yield
operations, or make a sane loop.
- Better state change handling in filesrc. Better error reporting/recovery
too.
- updated core plugins.
- detect non decoupled elements on scheduler boundries and error.
2001-12-22 21:18:17 +00:00
Wim Taymans
f5affde61c - Reclaim cothread state even if the cothread was never activated after the free.
Original commit message from CVS:
- Reclaim cothread state even if the cothread was never activated after
the free.
- fix the bin state change when there are no more children.
- use a real method to signal the parent bin of a state change.
- move the state change policy in the scheduler.
- remove the unused and ridiculous state change event
- don't free the cothread state when the element is disabled. only free it
when the element is removed from the scheduler.
2001-12-20 20:03:10 +00:00
Wim Taymans
a8b1346857 cothread cleanup.
Original commit message from CVS:
cothread cleanup.
- removed some old code.
- ran the thing through indent
- rename cothread_init/free to cothread_context_init/free
- implement cothread_free/destroy to clear the cothread_state slot
- make cothread_init reuse empty slots.
minor cleanups in error reporting (gstpad, gstelement)
code cleanup in gstthread
make unexpected state changes in gstthread less fatal
free the cothread_state in the scheduler.

This one passes all the current cvs testcases including dynamic-pipeline.
2001-12-20 02:41:34 +00:00
Wim Taymans
5ad018148c Some more work on cleanup.
Original commit message from CVS:
Some more work on cleanup.
- added two functions in the scheduler _setup and _reset to initialize
the context. In the case of the cothread context we have to map the
cothread stack space onto the threads stack.
- setup/reset the scheduler context in the threads context.
- fix the ghostpad cleanup.
- slightly changed the scheduler code to cleanly remove connections.
2001-12-19 19:22:53 +00:00
Wim Taymans
e279738a3f Adde cothread context cleanup code
Original commit message from CVS:
Adde cothread context cleanup code
2001-12-18 16:49:13 +00:00
Christian Schaller
d6b9ae8b63 aye ladie, no more ugly // comments here, even if Taaz gets upset about it
Original commit message from CVS:
aye ladie, no more ugly // comments here, even if Taaz gets upset about it
2001-12-14 22:59:21 +00:00
Wim Taymans
9f23c76bea Aplied more fixage from Michael Meeks.
Original commit message from CVS:
Aplied more fixage from Michael Meeks.
2001-12-13 23:14:39 +00:00
Wim Taymans
cccc097ca5 API docs. revived _buffer_ref_by_count fast types for scheduler and bin.
Original commit message from CVS:
API docs.
revived _buffer_ref_by_count
fast types for scheduler and bin.
error checking on plugin features;
removed some prototypes that were not implemented (gst_pipeline_iterate
comes to mind)
remove gst_pad_event until we know what it's supposed to do.
remove sinesrc, it wasn't compiles anymore, so...
updates to various elements that used the old event API.
2001-10-21 18:00:31 +00:00
Erik Walthinsen
c6a04366a3 gstinfo.[ch], cothreads.c: added initial support for -finstrument_functions gstbin.c: removed a reference to config.h...
Original commit message from CVS:
gstinfo.[ch], cothreads.c: added initial support for -finstrument_functions
gstbin.c: removed a reference to config.h
gstbuffer.[ch]: added gst_buffer_is_span_fast(), used it in gst_buffer_span
elements/gstfilesrc.c: initial work fleshing out the event handling code

everywhere else: wrapped XML stuff in #ifndef's
2001-09-10 19:46:01 +00:00
Wim Taymans
c416297af4 Changed the maxcothreads to 16. connect to the new_ghost_pad signal in parse.
Original commit message from CVS:
Changed the maxcothreads to 16.
connect to the new_ghost_pad signal in parse.
2001-06-06 18:29:57 +00:00
Wim Taymans
db0325ee37 Use the STACKSIZE and number of cothreads to calculate the cothread stack space (easier to change the number of cothr...
Original commit message from CVS:
Use the STACKSIZE and number of cothreads to calculate the cothread stack
space (easier to change the number of cothreads).
2001-06-04 16:02:48 +00:00