this repo has no description
at fixPythonPipStalling 61 lines 1.5 kB view raw
1/* 2 * Copyright (c) 2005 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_APACHE_LICENSE_HEADER_START@ 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * @APPLE_APACHE_LICENSE_HEADER_END@ 19 */ 20#include <sys/types.h> 21#include <sys/stat.h> 22#include <sys/event.h> 23#include <sys/time.h> 24#include <sys/param.h> 25#include <stdlib.h> 26#include <stdio.h> 27#include <unistd.h> 28#include <errno.h> 29#include <string.h> 30 31int main(int argc, char *argv[]) 32{ 33 int kq = kqueue(); 34 struct kevent kev; 35 struct stat sb; 36 37 if (argc != 2) { 38 fprintf(stderr, "usage: %s <object on mount point>\n", argv[0]); 39 exit(EXIT_FAILURE); 40 } 41 42 EV_SET(&kev, 0, EVFILT_FS, EV_ADD, 0, 0, 0); 43 44 if (kevent(kq, &kev, 1, NULL, 0, NULL) == -1) { 45 fprintf(stderr, "adding EVFILT_FS to kqueue failed: %s\n", strerror(errno)); 46 exit(EXIT_FAILURE); 47 } 48 49 if (stat(argv[1], &sb) == 0) { 50 exit(EXIT_SUCCESS); 51 } 52 53 for (;;) { 54 kevent(kq, NULL, 0, &kev, 1, NULL); 55 if (stat(argv[1], &sb) == 0) { 56 break; 57 } 58 } 59 60 exit(EXIT_SUCCESS); 61}