@@ -39,8 +39,6 @@ static int check_dir(const char *path)
39
39
}
40
40
41
41
#define MNGR_SOCK_FMT "/run/acrn/mngr/%s.%d.socket"
42
- #define MNGR_HANDLER_OFFSET 1024 /* The developer should not create more than
43
- 1024 file descriptors in his application */
44
42
#define MNGR_MAX_HANDLER 8
45
43
#define MNGR_MAX_CLIENT 4
46
44
#define PATH_LEN 128
@@ -296,32 +294,6 @@ static struct mngr_fd *desc_to_mfd(int val)
296
294
return find ;
297
295
}
298
296
299
- static int alloc_new_val_and_insert (struct mngr_fd * mfd )
300
- {
301
- int i ;
302
- struct mngr_fd * fd ;
303
-
304
- pthread_mutex_lock (& mngr_fd_mtx );
305
-
306
- mfd -> desc = -1 ;
307
- for (i = 0 ; i < MNGR_MAX_HANDLER ; i ++ ) {
308
- fd = desc_to_mfd_nolock (i + MNGR_HANDLER_OFFSET );
309
- if (!fd ) {
310
- mfd -> desc = i + MNGR_HANDLER_OFFSET ;
311
- break ;
312
- }
313
- }
314
-
315
- if (mfd -> desc >= 0 )
316
- LIST_INSERT_HEAD (& mngr_fd_head , mfd , list );
317
- else
318
- pdebug ();
319
-
320
- pthread_mutex_unlock (& mngr_fd_mtx );
321
-
322
- return mfd -> desc ;
323
- }
324
-
325
297
static int create_new_server (const char * name )
326
298
{
327
299
struct mngr_fd * mfd ;
@@ -374,18 +346,14 @@ static int create_new_server(const char *name)
374
346
goto poll_err ;
375
347
}
376
348
349
+ mfd -> desc = mfd -> fd ;
377
350
/* add this to mngr_fd_head */
378
- ret = alloc_new_val_and_insert (mfd );
379
- if (ret < 0 ) {
380
- pdebug ();
381
- goto alloc_val ;
382
- }
351
+ pthread_mutex_lock (& mngr_fd_mtx );
352
+ LIST_INSERT_HEAD (& mngr_fd_head , mfd , list );
353
+ pthread_mutex_unlock (& mngr_fd_mtx );
383
354
384
- return ret ;
355
+ return mfd -> desc ;
385
356
386
- alloc_val :
387
- mfd -> polling = 0 ;
388
- pthread_join (mfd -> poll_thread , NULL );
389
357
poll_err :
390
358
mfd -> listening = 0 ;
391
359
pthread_join (mfd -> listen_thread , NULL );
@@ -491,17 +459,15 @@ static int connect_to_server(const char *name)
491
459
goto connect_err ;
492
460
}
493
461
462
+ mfd -> desc = mfd -> fd ;
494
463
/* add this to mngr_fd_head */
495
- ret = alloc_new_val_and_insert (mfd );
496
- if (ret < 0 ) {
497
- pdebug ();
498
- goto alloc_val ;
499
- }
464
+ pthread_mutex_lock (& mngr_fd_mtx );
465
+ LIST_INSERT_HEAD (& mngr_fd_head , mfd , list );
466
+ pthread_mutex_unlock (& mngr_fd_mtx );
500
467
501
468
closedir (dir );
502
- return ret ;
469
+ return mfd -> desc ;
503
470
504
- alloc_val :
505
471
connect_err :
506
472
close (mfd -> fd );
507
473
sock_err :
@@ -599,22 +565,11 @@ int mngr_add_handler(int server_fd, unsigned id,
599
565
int mngr_send_msg (int fd , struct mngr_msg * req , struct mngr_msg * ack ,
600
566
unsigned timeout )
601
567
{
602
- int socket_fd ;
603
- struct mngr_fd * mfd ;
568
+ int socket_fd = fd ;
604
569
fd_set rfd , wfd ;
605
570
struct timeval t ;
606
571
int ret ;
607
572
608
- if (fd < MNGR_HANDLER_OFFSET )
609
- socket_fd = fd ;
610
- else {
611
- mfd = desc_to_mfd (fd );
612
- if (!mfd )
613
- socket_fd = fd ;
614
- else
615
- socket_fd = mfd -> fd ;
616
- }
617
-
618
573
if (!req ) {
619
574
printf ("%s %d\n" , __FUNCTION__ , __LINE__ );
620
575
return -1 ;
0 commit comments