fix style for semaphore coding.
@@ -308,6 +308,19 @@ | ||
308 | 308 | ID sem; |
309 | 309 | }; |
310 | 310 | |
311 | +#define HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector) \ | |
312 | + err = wai_sem((connector)->sem, T_FOREVER); \ | |
313 | + if (err < 0) { \ | |
314 | + return err; \ | |
315 | + } | |
316 | +#define HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_VOID(connector) \ | |
317 | + err = wai_sem((connector)->sem, T_FOREVER); \ | |
318 | + if (err < 0) { \ | |
319 | + return; \ | |
320 | + } | |
321 | +#define HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector) \ | |
322 | + sig_sem((connector)->sem); | |
323 | + | |
311 | 324 | #define HTTP_CONNECTOR_FLAG_CREARMASK(flag) (~(flag)) |
312 | 325 | #define HTTP_CONNECTOR_FLAG_REQUEST 0x00000001 |
313 | 326 | #define HTTP_CONNECTOR_FLAG_EVENT 0x00000002 |
@@ -319,12 +332,9 @@ | ||
319 | 332 | ID id; |
320 | 333 | W err; |
321 | 334 | |
322 | - err = wai_sem(connector->sem, T_FOREVER); | |
323 | - if (err < 0) { | |
324 | - return err; | |
325 | - } | |
335 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
326 | 336 | id = http_reqdict_allocate(connector->dict, host, host_len, port, method); |
327 | - sig_sem(connector->sem); | |
337 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
328 | 338 | if (id < 0) { |
329 | 339 | DP_ER("http_reqdict_allocate", id); |
330 | 340 | return id; /* TODO */ |
@@ -346,14 +356,11 @@ | ||
346 | 356 | Bool transport_close = True; |
347 | 357 | W err; |
348 | 358 | |
349 | - err = wai_sem(connector->sem, T_FOREVER); | |
350 | - if (err < 0) { | |
351 | - return; | |
352 | - } | |
359 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_VOID(connector); | |
353 | 360 | |
354 | 361 | entry = http_reqdict_getentrybyID(connector->dict, endpoint); |
355 | 362 | if (entry == NULL) { |
356 | - sig_sem(connector->sem); | |
363 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
357 | 364 | return; |
358 | 365 | } |
359 | 366 |
@@ -376,7 +383,7 @@ | ||
376 | 383 | |
377 | 384 | http_reqdict_free(connector->dict, endpoint); |
378 | 385 | |
379 | - sig_sem(connector->sem); | |
386 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
380 | 387 | } |
381 | 388 | |
382 | 389 | LOCAL W http_connector_searchwaiting(http_connector_t *connector) |
@@ -461,13 +468,15 @@ | ||
461 | 468 | W err; |
462 | 469 | Bool evt = False; |
463 | 470 | |
464 | - err = wai_sem(connector->sem, tmout); | |
471 | + err = wai_flg(connector->flg, HTTP_CONNECTOR_FLAG_REQUEST, WF_AND, tmout); | |
465 | 472 | if (err < 0) { |
466 | - return err; | |
473 | + return 0; | |
467 | 474 | } |
475 | + | |
476 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
468 | 477 | err = http_connector_searchwaiting(connector); |
469 | 478 | if (err < 0) { |
470 | - sig_sem(connector->sem); | |
479 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
471 | 480 | return err; |
472 | 481 | } |
473 | 482 | if (err > 0) { |
@@ -476,7 +485,7 @@ | ||
476 | 485 | http_transport_releaseunusedendpoint(connector->transport); |
477 | 486 | |
478 | 487 | err = http_connector_waitreceiving(connector, tmout); |
479 | - sig_sem(connector->sem); | |
488 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
480 | 489 | if (err < 0) { |
481 | 490 | return err; |
482 | 491 | } |
@@ -797,12 +806,9 @@ | ||
797 | 806 | DP_ER("wai_flg", err); |
798 | 807 | return err; |
799 | 808 | } |
800 | - err = wai_sem(connector->sem, T_FOREVER); | |
801 | - if (err < 0) { | |
802 | - return err; | |
803 | - } | |
809 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
804 | 810 | found = http_connector_searcheventtarget(connector, event); |
805 | - sig_sem(connector->sem); | |
811 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
806 | 812 | if (found == False) { |
807 | 813 | err = clr_flg(connector->flg, HTTP_CONNECTOR_FLAG_CLEARMASK_EVENT); |
808 | 814 | if (err < 0) { |
@@ -849,16 +855,13 @@ | ||
849 | 855 | Bool cont; |
850 | 856 | CONST UB *str; |
851 | 857 | |
852 | - err = wai_sem(connector->sem, T_FOREVER); | |
853 | - if (err < 0) { | |
854 | - return err; | |
855 | - } | |
858 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
856 | 859 | |
857 | 860 | HTTP_CONNECTOR_SENDXXX_GET_CHECK(connector, endpoint, SEND_REQUEST_LINE, entry); |
858 | 861 | |
859 | 862 | err = http_requestlinestream_initialize(&reqline, entry->method, path, path_len); |
860 | 863 | if (err < 0) { |
861 | - sig_sem(connector->sem); | |
864 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
862 | 865 | return err; |
863 | 866 | } |
864 | 867 | for (;;) { |
@@ -874,13 +877,13 @@ | ||
874 | 877 | http_requestlinestream_finalize(&reqline); |
875 | 878 | |
876 | 879 | if (err < 0) { |
877 | - sig_sem(connector->sem); | |
880 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
878 | 881 | return err; |
879 | 882 | } |
880 | 883 | |
881 | 884 | entry->snd_state = SEND_HEADER_MINE; |
882 | 885 | |
883 | - sig_sem(connector->sem); | |
886 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
884 | 887 | |
885 | 888 | return 0; |
886 | 889 | } |
@@ -913,10 +916,7 @@ | ||
913 | 916 | http_reqentry_t *entry; |
914 | 917 | W err; |
915 | 918 | |
916 | - err = wai_sem(connector->sem, T_FOREVER); | |
917 | - if (err < 0) { | |
918 | - return err; | |
919 | - } | |
919 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
920 | 920 | |
921 | 921 | HTTP_CONNECTOR_SENDXXX_GET_CHECK_2(connector, endpoint, SEND_HEADER_MINE, SEND_HEADER_USER, entry); |
922 | 922 |
@@ -923,13 +923,13 @@ | ||
923 | 923 | if (entry->snd_state == SEND_HEADER_MINE) { |
924 | 924 | err = http_connector_writedefaultheader(connector, entry->transport, entry->host, entry->host_len); |
925 | 925 | if (err < 0) { |
926 | - sig_sem(connector->sem); | |
926 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
927 | 927 | return err; |
928 | 928 | } |
929 | 929 | entry->snd_state = SEND_HEADER_USER; |
930 | 930 | } |
931 | 931 | |
932 | - sig_sem(connector->sem); | |
932 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
933 | 933 | |
934 | 934 | return 0; |
935 | 935 | } |
@@ -939,10 +939,7 @@ | ||
939 | 939 | http_reqentry_t *entry; |
940 | 940 | W err; |
941 | 941 | |
942 | - err = wai_sem(connector->sem, T_FOREVER); | |
943 | - if (err < 0) { | |
944 | - return err; | |
945 | - } | |
942 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
946 | 943 | |
947 | 944 | HTTP_CONNECTOR_SENDXXX_GET_CHECK_2(connector, endpoint, SEND_HEADER_MINE, SEND_HEADER_USER, entry); |
948 | 945 |
@@ -949,19 +946,19 @@ | ||
949 | 946 | if (entry->snd_state == SEND_HEADER_MINE) { |
950 | 947 | err = http_connector_writedefaultheader(connector, entry->transport, entry->host, entry->host_len); |
951 | 948 | if (err < 0) { |
952 | - sig_sem(connector->sem); | |
949 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
953 | 950 | return err; |
954 | 951 | } |
955 | 952 | } |
956 | 953 | err = http_transport_write(connector->transport, entry->transport, "\r\n", 2); |
957 | 954 | if (err < 0) { |
958 | - sig_sem(connector->sem); | |
955 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
959 | 956 | return err; |
960 | 957 | } |
961 | 958 | |
962 | 959 | entry->snd_state = SEND_MESSAGE_BODY; |
963 | 960 | |
964 | - sig_sem(connector->sem); | |
961 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
965 | 962 | |
966 | 963 | return 0; |
967 | 964 | } |
@@ -971,15 +968,12 @@ | ||
971 | 968 | http_reqentry_t *entry; |
972 | 969 | W err; |
973 | 970 | |
974 | - err = wai_sem(connector->sem, T_FOREVER); | |
975 | - if (err < 0) { | |
976 | - return err; | |
977 | - } | |
971 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
978 | 972 | |
979 | 973 | HTTP_CONNECTOR_SENDXXX_GET_CHECK(connector, endpoint, SEND_MESSAGE_BODY, entry); |
980 | 974 | |
981 | 975 | err = http_transport_write(connector->transport, entry->transport, p, len); |
982 | - sig_sem(connector->sem); | |
976 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
983 | 977 | if (err < 0) { |
984 | 978 | return err; |
985 | 979 | } |
@@ -992,16 +986,13 @@ | ||
992 | 986 | http_reqentry_t *entry; |
993 | 987 | W err; |
994 | 988 | |
995 | - err = wai_sem(connector->sem, T_FOREVER); | |
996 | - if (err < 0) { | |
997 | - return err; | |
998 | - } | |
989 | + HTTP_CONNECTOR_ENTER_CRITICAL_SECTION_RET_ERR(connector); | |
999 | 990 | |
1000 | 991 | HTTP_CONNECTOR_SENDXXX_GET_CHECK(connector, endpoint, SEND_MESSAGE_BODY, entry); |
1001 | 992 | |
1002 | 993 | entry->status = WAITING_RESPONSE; |
1003 | 994 | |
1004 | - sig_sem(connector->sem); | |
995 | + HTTP_CONNECTOR_LEAVE_CRITICAL_SECTION(connector); | |
1005 | 996 | |
1006 | 997 | return 0; |
1007 | 998 | } |