2009-08-17 5 views
10

가볍고 휴대 성이 뛰어난 광섬유 라이브러리를 MIT 라이센스 (또는 느슨한)로 제공하고 싶습니다. 부스트. 코 루틴은 (경량이 아닌) 자격이 없으며, Portable Coroutine Library 나 Kent C++ CSP (둘 다 GPL)도 아닙니다.가볍고 휴대용 C++ 섬유, MIT 라이센스

편집 : 찾을 수 있습니까? :)

+0

훗를 보인다. :) –

답변

9
  1. Libtask : MIT 라이센스
  2. Libconcurrency : 실제로 LGPL (! MIT의보다 엄격한 작은, 그러나 그것은 기능 도서관)

모두 C.

위해 작성하는
+0

setcontext()/setmcontext()는 특정 플랫폼에서 작동하는 것처럼 보이지만 그 외의 경우에는 쉽게 휴대 할 수 있습니다. –

+0

cygwin에는 setcontext가 없습니다. – user2023370

3

list of implementations for C

는 초경량 "스레드"에 대한 위키 피 디아 문서의 하단에 Protothreads를보십시오.

+0

나는 결국 유망 해 보이는 http://www.sics.se/~adam/pt/download.html을 발견했다. –

+0

암시 적 상태의 스위치/케이스 래퍼가되도록 설계되었습니다. 내가 찾던 것이 아니라 여전히 흥미 롭습니다. –

5

나는 이 문제는 예전에는 blogged입니다. 봐라! 나는 그것이 당신의 질문에 대답하기를 바랍니다. 이 책에서는 많은 라이브러리를 다루고 있으며, 특히 시스템 프로그래밍 (비동기 IO)에 유용한 라이브러리에 관심이 많습니다.

해당 범위에서 현저하게 결석 한 것은 Boost.Coroutine입니다. 이에 대해서는 여기에서 설명합니다. Boost.Coroutine은 "헤비급"으로 개념적으로 간주 될 수 있지만 구현은 매우 효율적입니다. 진짜 문제는 Boost.Coroutine이 완전하지 않다는 것입니다. Boost.Asio와 함께 사용하기를 정말로 기대하고 있었기 때문에 나는 시동기가 아닌 이슈를 통해 저자와 함께 일하려고 애썼다. (이것은 부스트 ​​중 하나였다. 코 루틴의 주요 목적), 저자는 Boost 공식 검토 단계에 그의 작품을 가져갈 시간이있었습니다.

+0

링크에 버그가 있다고 생각합니다. 시도해보십시오. http://yz.mit.edu/wp/cooperative-threads-for-cc/ – user2023370

+0

감사합니다. URL이 수정되었습니다. – Yang

1

지금 당신이 부스트 라이센스이 더 나은 옵션이 : 나는 거기에 그들 모두 Altruists에 대한 개발되지 않은 지역을 발견처럼