@@ -4,21 +4,32 @@ use std::thread;
44
55use color_eyre:: Result ;
66
7- use rsky_relay:: { CrawlerManager , MessageRecycle , PublisherManager , SHUTDOWN , Server } ;
7+ use mimalloc:: MiMalloc ;
8+ use rustls:: crypto:: aws_lc_rs:: default_provider;
89use signal_hook:: consts:: { SIGINT , TERM_SIGNALS } ;
910use signal_hook:: flag;
1011use signal_hook:: iterator:: SignalsInfo ;
1112use signal_hook:: iterator:: exfiltrator:: WithOrigin ;
1213
14+ use rsky_relay:: {
15+ CrawlerManager , MessageRecycle , PublisherManager , SHUTDOWN , Server , ValidatorManager ,
16+ } ;
17+
1318const CAPACITY1 : usize = 1 << 20 ;
1419const CAPACITY2 : usize = 1 << 10 ;
1520const WORKERS : usize = 4 ;
1621
17- pub fn main ( ) -> Result < ( ) > {
22+ #[ global_allocator]
23+ static GLOBAL : MiMalloc = MiMalloc ;
24+
25+ #[ tokio:: main]
26+ pub async fn main ( ) -> Result < ( ) > {
1827 tracing_subscriber:: fmt ( )
1928 . with_env_filter ( tracing_subscriber:: EnvFilter :: from_default_env ( ) )
2029 . init ( ) ;
2130
31+ default_provider ( ) . install_default ( ) . unwrap ( ) ;
32+
2233 let terminate_now = Arc :: new ( AtomicBool :: new ( false ) ) ;
2334 flag:: register_conditional_shutdown ( SIGINT , 1 , Arc :: clone ( & terminate_now) ) ?;
2435 flag:: register ( SIGINT , Arc :: clone ( & terminate_now) ) ?;
@@ -27,10 +38,12 @@ pub fn main() -> Result<()> {
2738 thingbuf:: mpsc:: blocking:: with_recycle ( CAPACITY1 , MessageRecycle ) ;
2839 let ( request_crawl_tx, request_crawl_rx) = rtrb:: RingBuffer :: new ( CAPACITY2 ) ;
2940 let ( subscribe_repos_tx, subscribe_repos_rx) = rtrb:: RingBuffer :: new ( CAPACITY2 ) ;
41+ let mut validator = ValidatorManager :: new ( message_rx) . await ?;
3042 let crawler = CrawlerManager :: new ( WORKERS , message_tx, request_crawl_rx) ?;
31- let publisher = PublisherManager :: new ( WORKERS , message_rx , subscribe_repos_rx) ?;
43+ let publisher = PublisherManager :: new ( WORKERS , & mut validator , subscribe_repos_rx) ?;
3244 let server = Server :: new ( request_crawl_tx, subscribe_repos_tx) ?;
3345 thread:: scope ( move |s| {
46+ tokio:: spawn ( validator. run ( ) ) ;
3447 s. spawn ( move || crawler. run ( ) ) ;
3548 s. spawn ( move || publisher. run ( ) ) ;
3649 s. spawn ( move || server. run ( ) ) ;
0 commit comments