From f0b781af666aef27380768f66f691a05e7b01eda Mon Sep 17 00:00:00 2001 From: Jean-Michel Picod Date: Mon, 28 Jul 2014 23:24:11 +0200 Subject: [PATCH] Fix a potential crash SDRSharp was crashing when hitting the stop button if the device has been lost while sampling. This was due to a loop of exception. --- BladeRF/BladeRFDevice.cs | 8 ++++---- Debug/SDRSharp.BladeRF.dll | Bin 44032 -> 44032 bytes Debug/SDRSharp.BladeRF.pdb | Bin 69120 -> 69120 bytes Release/SDRSharp.BladeRF.dll | Bin 41472 -> 41472 bytes Release/SDRSharp.BladeRF.pdb | Bin 58880 -> 58880 bytes 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BladeRF/BladeRFDevice.cs b/BladeRF/BladeRFDevice.cs index 7a4f7b7..2cc0028 100644 --- a/BladeRF/BladeRFDevice.cs +++ b/BladeRF/BladeRFDevice.cs @@ -378,6 +378,7 @@ public void Dispose() private unsafe void ReceiveSamples_sync() { + int status = 0; while (_isStreaming) { uint cur_len, new_len; @@ -395,9 +396,8 @@ private unsafe void ReceiveSamples_sync() _samplesBuffer = UnsafeBuffer.Create((int)(2 * cur_len), sizeof(Int16)); _samplesPtr = (Int16*)_samplesBuffer; } - if (NativeMethods.bladerf_sync_config(_dev, bladerf_module.BLADERF_MODULE_RX, bladerf_format.BLADERF_FORMAT_SC16_Q11, NumBuffers, cur_len, NumBuffers / 2, SampleTimeoutMs) != 0) - return; - int status = 0; + if ((status = NativeMethods.bladerf_sync_config(_dev, bladerf_module.BLADERF_MODULE_RX, bladerf_format.BLADERF_FORMAT_SC16_Q11, NumBuffers, cur_len, NumBuffers / 2, SampleTimeoutMs)) != 0) + _isStreaming = false; while (status == 0 && cur_len == new_len) { try @@ -577,10 +577,10 @@ public void Stop() if (_isStreaming) { int error; + _isStreaming = false; if ((error = NativeMethods.bladerf_enable_module(_dev, bladerf_module.BLADERF_MODULE_RX, 0)) != 0) throw new ApplicationException(String.Format("Disabling RX module failed: {0}", NativeMethods.bladerf_strerror(error))); } - _isStreaming = false; if (_sampleThread != null) { diff --git a/Debug/SDRSharp.BladeRF.dll b/Debug/SDRSharp.BladeRF.dll index 9d5894016dfd956055037ead45d793b64747fb92..469e3fe9fa8adf02642ff83781a61b17c4f58e1b 100644 GIT binary patch delta 927 zcmYk*T}TvB6bJDCoz$-jL9{xKu?^PJLo0vLZU8e-PQeU# z>6aTCq)n4WBeY0h{}7?#xN^e&cMoi2l9&~GpW`1TWNEL!f84JuTsYXm!ky)Uc(shW& zYOt)Un#OAIQXcWug?{RL_`sdlg5b``!&T$ zhh&ErYr48M6$jMJFnXkH8tc>)ClT=;@!`HM^&y+EkQ6^E#i>>TA+<2hKakofH}uqJ z(j;j@+Bq#oR%r`AjwZ#wleVdXx;9NL@gt@yZW5@zXo?!Y(#&T3(e+pQO=ay=&kQ4D z&k53^F6BD^G2)hQ`LjuzJn!!#K{=zjk4!6(<}Q-!?^1In(3SPd@LpYF7!&!uS!;$Z zjLSPME;6sUS})e8)oi?VEiC0VghMl9?kiJnW%}WIs=>(f%Ju0>4E+)1PqT$YP|S1N F#(y6s!;b&} delta 925 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 delta 1028 zcmYk*TSyd97zgnGnQdohZ_}E!23}edbG>9M*+uPUnY*r{=2oJRLG>1B7Yagh-P9$l z$n8AX#pps03MIlIY4l(qbfMl#jLa^Y6g>zP1Z8dCTpk*j;r!0`o$s47%xNDN+Q)^S zvqI)@tUHZW#|G+Ui~^OQYYgZ&#nKZU?*Rw-$$cP&AHAB#8(0?G%_A(F?xSS&3eYXU zjFCNn>i}TVX6d1%3-wtm2N+EQ2^%ldpsfH{l$j`cI{{l;nF_m&_hqMvVsn0mAo8*7 z^^(}wobM5qi~MhP)@E^q%k!B^dd~o29?Nk%HojIHwieQ2p|y&hV%uq|re}3fmP5*O zA6sR^5s4qpImtx+F{hy1J}o6!yj_$yC9SrImXg$XJTA1B()!|kf8+5SD$2a-PL{xy z0!iP*1B@PLCV@f%I+%1$*_#_Pvn)RE^NQ}%>SD!RP`)(0yF$&6pv94d4fqjM6-Ae( z=heE-X=|hlL7`jLb zqW!9obXhy)InrcZSSw?_BJU->Gg3$7URDEhNN@3&TGYa$ z%Q_){Cv7z}X%|^7{D$W2HqseQQRx$9?n1YrKk`q~4NVa&TU^exX8gK;2Ybjr_>hD6Iu`Y`;bCsXO_<3>=mFcR2C{d@jKUZ*H+cF(6}<3l=i}+u&Wlf p#A_T$b-P>Cu_u=97JQ?;_}WXpjky%L@0UraEm9J0&a;@$@(&Ms<+1<( diff --git a/Release/SDRSharp.BladeRF.pdb b/Release/SDRSharp.BladeRF.pdb index a51ee3979563378ca39bd187e6fe2d73243b03ad..79cdff9c82355608635c8ee52a5315cc9d5f612b 100644 GIT binary patch delta 2047 zcmZvde^8BS6vyB5_P*Skdv))2t6LY{*rFe|!tAs*a#NAru@%!QhP0NV)TL+$-KMpc z(UQYr{U{ZKVa01^GqY?AyI2WBwCu>PoiP*Iu%lV3{k|`D|Ji5eJ)d))bDr~@`<~~0 zuKTiw`?ANT2r?aW+#u2WxMCJNiS6P*ulFOS2>*?4&7t(l1riSyb?h=pMi<44UYAoi%p4MZDn`pDIL?)JfV@S_qe1{`#wq+;P z4wB$t$(mS~Y!^A%ZsMk)R>d`Rdw+dn6cS@JD(0{kq+b;hSGDg@3+dP#(I``io_V=rqLEQ#O{BiDi>lu5vhj* z<602Y8JA9Uf|H!Fkmb&g_<_^H(eVcFVv``8GYi6A5`>q-1Oebarw?~K4WS}xgB#x0 zqhMZ1R{p#K!B_AwKZK(Rp6}o~$&=%!Q7`X~ub=}QG$D!(C}|VCh+;WAArP`WVJ*#J zec}|gHhY|f^AoM~oYy1<`aciT_SAB2u?Rvto=D_;#itU}D2Ba~9JE3imlS9yJAvBN z5rXH&8+{cCZnexOoxSeX;CiqU+zD<3 zPlB7kCJ_0{+~=We#l&ym*We%EHt;359TZX24$u?)1~h_dVP4=a*dxH*U=+9qOa`mL z6tD)&0M&J~-*6sS3wtH_q;q1gdo`4LOq7B9LHt_b0QePn2;2gy8zQ+-1sgsAYupO> zEoc-53A}4+nA|M*2w~hZbrCu>ZrUAmO7TzsT|`fMrVlrI;rAqog4+&G=oX*(=c~r&C1tqi{x)0AN{FDy!slvG^ImlI{mUucPfE!#+)Ys)w>&skR zCU!({WN-jKUu@DpjZohp33E9p)tl{08c|x?k|L_+DMbmWsH$itDtcTLBX&6WDpK3Sw9JIsf|e!d596Csck<`# zU~k2}Y_$h2g}&tp5?)J6nU9jOdWHJxJEQUH-H{UIDSm5=Hr;t`8LotD7rc3VjhW7K zTFp8H-l=g=E9>`0iLH@*Wqtr}s2j_hs_pcUk5vzYyt%iOUU6FOXvj6SKhQ=_stbo) zTvwuNz`chPDR9?CKki>YPXBrv63jeusW;E5AA#KK>JyNrxjqI7Cd51#$E~GznkMEw>mraO0m?W zDvvJN`NkEeWPiQLUm4kw&<{6b)lEO#V3jv*{bGmXUi09{>%OvjMSa2L*ZpV(-@j?Y zaqfXU%W17P`69jn9aF0xj0=>^wXXOrP z{Wbqn9(l_qr#l4UL(NkSEkM&wLJQGi?(ts4bifuh&tqu)H0>F*U@gYV=G!)T6q+|g zvs1Yo_H@`EXm*umZ-;HsR;s7NU(?i1nAzOshYobzwxI*YHkUfO)fW P%5wlI`1=)WABg_|M1i2J delta 2030 zcmZ9N4Nz276vyv*yAO7g&D{inU6e(^4`BHinyduc6&TG#L`MT1C87ic0bS74$R+%U zk`fMPmdJtdtfs6$#s)CbXj2?%%7`h`nw0+UVKvj6dFOY|x#!+{-aTjT z^K|JvUAleIWax18k~F#TYbEL-QW(;Ck25Be!Z{`Eu?nC$b-AFg=5 z@vZIYhpw)_y<%`Ev#P^&lecTRKR`UJ0RBE;W-IqKOE=5m%(qq1K=+pPSSG&JP3|~uYwYiR1-mKi9@ib zfDK?cco<9q8^Kht2}}podCTr_CD;OcBlz>kyxSf(lvX&(z}Lae;8Cy&d;`Q+X&W+F z3mcn>3J@`(9pt8^k;acifCxc}?cB3;11goY>;fvK1TViVp(eK;ooNb2{%Ml%s7*Sb z0D*8w#1W zb`QF%d+qA+L3ZW`NlDQ>^`Ydt0s}WaX{U5Pou5xn@$7;^^78(Ie7efF3PK^LtlLh+ z2iIj|Zcjk~8`cNWLJnJ>C)GRnREdqZb>7Wyu3t{=EEnccFRz32a(AJdF0reqgoe4J zsE|xNWkVs&^sas9)RECw`Ds>{i z(NZvdzd$ykz3g26k~JD z_)fu`8!<`oY<@3zzaC-jEPP!iA1;6J;Q^*66* zMwxC{n-a#oXPvq;nr>C%ds2LGH`ewA;`XZPv-!l~0(wu!F<(uV)$3_DSAG>pCH#G# z4Xu0&@&sr0+vHQ|e*;s0Alg{9yZ^D}K4?Meh$DYL^&VhNQm%r6;BN