mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	pulsecore: Transform pa_mempool_new() into a factory method
Soon we're going to have three types of memory pools: POSIX shm_open() pools, memfd memfd_create() ones, and privately malloc()-ed pools. Thus introduce annotations for the memory types supported and change pa_mempool_new() into a factory method based on required memory. Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
This commit is contained in:
		
							parent
							
								
									211a520543
								
							
						
					
					
						commit
						b88acd0266
					
				
					 18 changed files with 97 additions and 37 deletions
				
			
		| 
						 | 
				
			
			@ -125,6 +125,7 @@ static void reset_callbacks(pa_context *c) {
 | 
			
		|||
 | 
			
		||||
pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *name, pa_proplist *p) {
 | 
			
		||||
    pa_context *c;
 | 
			
		||||
    pa_mem_type_t type;
 | 
			
		||||
 | 
			
		||||
    pa_assert(mainloop);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -170,10 +171,13 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *
 | 
			
		|||
    c->srb_template.readfd = -1;
 | 
			
		||||
    c->srb_template.writefd = -1;
 | 
			
		||||
 | 
			
		||||
    if (!(c->mempool = pa_mempool_new(!c->conf->disable_shm, c->conf->shm_size))) {
 | 
			
		||||
    type = !c->conf->disable_shm ? PA_MEM_TYPE_SHARED_POSIX : PA_MEM_TYPE_PRIVATE;
 | 
			
		||||
    if (!(c->mempool = pa_mempool_new(type, c->conf->shm_size))) {
 | 
			
		||||
 | 
			
		||||
        if (!c->conf->disable_shm)
 | 
			
		||||
            c->mempool = pa_mempool_new(false, c->conf->shm_size);
 | 
			
		||||
        if (!c->conf->disable_shm) {
 | 
			
		||||
            pa_log_warn("Failed to allocate shared memory pool. Falling back to a normal private one.");
 | 
			
		||||
            c->mempool = pa_mempool_new(PA_MEM_TYPE_PRIVATE, c->conf->shm_size);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!c->mempool) {
 | 
			
		||||
            context_free(c);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue