14 years agofix the plm database tool
Andre [Tue, 21 Feb 2006 14:52:45 +0000 (15:52 +0100)]
fix the plm database tool

(Re)loading the playlist uses the new mutex and
shm helpers and is hopefully a race-free implementation.

It works as follows:

The plm init function (parent, server context) reserves
a shared memory area (client data) as well as two unlocked
mutexes. The first mutex serializes access for racing clients
that want to replace the playlist. The second mutex serializes
the access between parent and child (com_lpl()).

com_lpl() loads the playlist from the client into a tmp buffer.
It then creates a shm area (client_shm) and copies that buffer
to the area.  Further, another mutex (shm) is created. This
mutex is initially locked.

Next, it grabs the client lock and the server lock, and updates
client_data with the id of client_shm. Then the parent is
woken up (SIGUSR1) and the server lock is released. com_lpl()
finally goes to sleep by acquiring the shm lock.

In this situation, only the parent may run. It grabs the
server lock, reads client_data to attach client_shm and
reloads the playlist with data from client_shm. When ready,
the parent detaches client_shm, and drops the shm lock and
the server lock.

This wakes up com_lpl() which destroys client_shm, the
shm mutex and the tmp buffer.

14 years agoMerge branch 'dbtool_preselect'
Andre [Tue, 21 Feb 2006 08:22:36 +0000 (09:22 +0100)]
Merge branch 'dbtool_preselect'

14 years agoMerge branch 'ipc'
Andre [Tue, 21 Feb 2006 08:20:30 +0000 (09:20 +0100)]
Merge branch 'ipc'


Fix these conflicts.

14 years agoadd dbtool hooks
Andre [Tue, 21 Feb 2006 08:09:36 +0000 (09:09 +0100)]
add dbtool hooks

pre_select/post_select. Also, add a private_dbtool pointer for
each audio format to mmd.

14 years agoThe new ipc subsystem
Andre [Tue, 21 Feb 2006 07:12:46 +0000 (08:12 +0100)]
The new ipc subsystem

Contains functions for dealing with mutexes and shared memory.

14 years agothe new plm database tool
Andre [Tue, 21 Feb 2006 06:06:17 +0000 (07:06 +0100)]
the new plm database tool

does not work yet as the ipc problems are not solved.

14 years agorename dopey to random
Andre [Mon, 20 Feb 2006 06:25:59 +0000 (07:25 +0100)]
rename dopey to random

It isn't so dopey anymore and the upcoming plm database tool
won't be much smarter, so..

14 years agoinitial git commit
Andre [Mon, 20 Feb 2006 06:03:36 +0000 (07:03 +0100)]
initial git commit

Let's try if this works out.