allocate playerData_pd from heap instead of shm
git-svn-id: https://svn.musicpd.org/mpd/trunk@7308 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
eb5d51c988
commit
288a7087f6
@ -70,10 +70,6 @@
|
|||||||
#include <stddef.h> /* needed? this defines NULL + offsetof() */
|
#include <stddef.h> /* needed? this defines NULL + offsetof() */
|
||||||
#include <resolv.h>
|
#include <resolv.h>
|
||||||
|
|
||||||
/* remove when we switch to pthreads: */
|
|
||||||
#include <sys/ipc.h>
|
|
||||||
#include <sys/shm.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_UN
|
#ifdef HAVE_UN
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,7 +34,6 @@ void initPlayerData(void)
|
|||||||
{
|
{
|
||||||
float perc = DEFAULT_BUFFER_BEFORE_PLAY;
|
float perc = DEFAULT_BUFFER_BEFORE_PLAY;
|
||||||
char *test;
|
char *test;
|
||||||
int shmid;
|
|
||||||
int crossfade = 0;
|
int crossfade = 0;
|
||||||
size_t bufferSize = DEFAULT_BUFFER_SIZE;
|
size_t bufferSize = DEFAULT_BUFFER_SIZE;
|
||||||
size_t allocationSize;
|
size_t allocationSize;
|
||||||
@ -78,12 +77,7 @@ void initPlayerData(void)
|
|||||||
/* for playerData struct */
|
/* for playerData struct */
|
||||||
allocationSize = sizeof(PlayerData);
|
allocationSize = sizeof(PlayerData);
|
||||||
|
|
||||||
if ((shmid = shmget(IPC_PRIVATE, allocationSize, IPC_CREAT | 0600)) < 0)
|
playerData_pd = xmalloc(allocationSize);
|
||||||
FATAL("problems shmget'ing\n");
|
|
||||||
if (!(playerData_pd = shmat(shmid, NULL, 0)))
|
|
||||||
FATAL("problems shmat'ing\n");
|
|
||||||
if (shmctl(shmid, IPC_RMID, NULL) < 0)
|
|
||||||
FATAL("problems shmctl'ing\n");
|
|
||||||
|
|
||||||
playerData_pd->audioDeviceStates = xmalloc(device_array_size);
|
playerData_pd->audioDeviceStates = xmalloc(device_array_size);
|
||||||
|
|
||||||
@ -129,5 +123,5 @@ void freePlayerData(void)
|
|||||||
waitpid(-1, NULL, 0);
|
waitpid(-1, NULL, 0);
|
||||||
|
|
||||||
free(playerData_pd->audioDeviceStates);
|
free(playerData_pd->audioDeviceStates);
|
||||||
shmdt(playerData_pd);
|
free(playerData_pd);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user