sectionsd: Handbremse los...

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Innuendo hat geschrieben:es reagiert schneller, als deine paul goes table version.
Seh ich auch so. Konnte mich ja aber nicht selbst loben. Danke. :)

- CPU-Last höher, wäre möglich. Wird ja nicht mehr soviel gewartet. Ist mir aber egal, weil die Bedienung ja trotzdem schneller ist.
- Naja, ich könnte noch das Messaging und die Services auf rwlock umstricken. Das erste ist aber nicht so kritisch wie die Events und das zweite ist nur bei automatischer Sendersuche relevant.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Nirvana hat geschrieben:Seh ich auch so. Konnte mich ja aber nicht selbst loben. Danke. :)
:D
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:05, insgesamt 1-mal geändert.
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Innus Link geht nicht, kann mir ma jemand das diff zu Verfügung stellen ?


Gruß Riker
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 14:57, insgesamt 1-mal geändert.
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

@nirvana: Der Shot is ja mal n Knaller!!! :)
Hab eben mal den Snap von Riker (3.6.) angetestet.
Sehr fix :) Sehr gut!
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Innu

dein Diff geht leider nicht mehr:

Code: Alles auswählen

developer@tuxbox:~/tuxbox-cvs$ patch -p2 < rwlock.diff
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- sectionsd.cpp.cvs  2007-05-30 08:41:29.000000000 +0200
|+++ sectionsd.cpp      2007-05-30 08:40:53.000000000 +0200
--------------------------
File to patch: apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
patching file apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
Hunk #1 FAILED at 1.
Hunk #22 FAILED at 1888.
Hunk #45 succeeded at 6268 (offset 2 lines).
Hunk #46 succeeded at 6455 (offset 2 lines).
Hunk #47 succeeded at 6469 (offset 2 lines).
Hunk #48 succeeded at 6519 (offset 2 lines).
Hunk #49 succeeded at 6543 (offset 2 lines).
Hunk #50 succeeded at 6653 (offset 2 lines).
Hunk #51 succeeded at 6837 (offset 2 lines).
Hunk #52 succeeded at 6850 (offset 2 lines).
Hunk #53 succeeded at 6873 (offset 2 lines).
Hunk #54 succeeded at 6970 (offset 2 lines).
Hunk #55 succeeded at 7085 (offset 2 lines).
Hunk #56 succeeded at 7102 (offset 2 lines).
Hunk #57 succeeded at 7123 (offset 2 lines).
Hunk #58 FAILED at 7213.
Hunk #59 succeeded at 7335 (offset 2 lines).
Hunk #60 succeeded at 7349 (offset 2 lines).
3 out of 60 hunks FAILED -- saving rejects to file apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp.rej
Ich schaetze mal deswegen :

http://cvs.tuxbox-cvs.sourceforge.net/l ... 00013.html apps/tuxbox/neutrino/daemons/sectionsd sectionsd.cpp
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Habe mich daher mal selber dran gestetzt und versucht es zu verstehen.

Es scheint ja immer dort nicht zu funktionieren wo Datum/Version getauscht werden sollen. Das alte diff geht von einem Sectionsd Stand von bevor den letzten Aenderungen aus.

Habe das daher mal versucht hier zu korrigieren:

http://www.pt-1.net/innuendo/rwlock_1.diff

Code: Alles auswählen

+	printf("$Id: sectionsd.cpp,v 1.241 2007/06/06 13:24:00 nirvana Exp $\n");
Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 14:58, insgesamt 1-mal geändert.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Innu oder jemand der von Diff's etwas versteht ;-)

Im sectionsd.cpp.rej steht das:

Code: Alles auswählen

***************
*** 100,106 ****
  // meta housekeeping after XX housekeepings - every 24h -
  #define META_HOUSEKEEPING (24 * 60 * 60) / HOUSEKEEPING_SLEEP
  
- // 12h Pause für SDT
  //#define TIME_SDT_SCHEDULED_PAUSE 12* 60* 60
  // -- shorter time for pause should  result in better behavior  (rasc, 2005-05-02)
  #define TIME_SDT_SCHEDULED_PAUSE 2* 60* 60
--- 100,106 ----
  // meta housekeeping after XX housekeepings - every 24h -
  #define META_HOUSEKEEPING (24 * 60 * 60) / HOUSEKEEPING_SLEEP
  
+ // 12h Pause fr SDT
  //#define TIME_SDT_SCHEDULED_PAUSE 12* 60* 60
  // -- shorter time for pause should  result in better behavior  (rasc, 2005-05-02)
  #define TIME_SDT_SCHEDULED_PAUSE 2* 60* 60
Im originalen sectionsd.cpp sind Zeile 100 bis 106

Code: Alles auswählen

// meta housekeeping after XX housekeepings - every 24h -
#define META_HOUSEKEEPING (24 * 60 * 60) / HOUSEKEEPING_SLEEP

// 12h Pause fr SDT
//#define TIME_SDT_SCHEDULED_PAUSE 12* 60* 60
// -- shorter time for pause should  result in better behavior  (rasc, 2005-05-02)
#define TIME_SDT_SCHEDULED_PAUSE 2* 60* 60
Im Diff steht der folgende Befehl:

Code: Alles auswählen

@@ -100,7 +100,7 @@
 // meta housekeeping after XX housekeepings - every 24h -
 #define META_HOUSEKEEPING (24 * 60 * 60) / HOUSEKEEPING_SLEEP
 
-// 12h Pause für SDT
+// 12h Pause fr SDT
 //#define TIME_SDT_SCHEDULED_PAUSE 12* 60* 60
 // -- shorter time for pause should  result in better behavior  (rasc, 2005-05-02)
 #define TIME_SDT_SCHEDULED_PAUSE 2* 60* 60
Muesste das Diff jetzt an der Stelle auf @@ -100,6 +100,6 abgeandert werden :gruebel:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

das kannste ignorieren, da das diff nur die deutschen umlaute anmeckert, die eh in einer // bemerkung stehen, und vom compiler ignoriert werden.
ich bin dafür entweder das einzu-englishen, oder wenigstens ü -> ue ä->ae usw zu machen, das sowas nicht passieren kann.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@MB405

anscheinend nicht... Im meinem diff habe ich nur Datum & Version auf eine hoehere Variante geandert...

Code: Alles auswählen

//  $Id: sectionsd.cpp,v 1.241 2007/06/06 13:24:00 nirvana Exp $

Code: Alles auswählen

uxbox/xmltree   -D DO_NOT_INCLUDE_STUFF_NOT_NEEDED_FOR_SECTIONSD -I/home/developer/tuxbox-cvs/driver/dvb/include -I/home/developer/tuxbox-cvs/driver/include  -Wall -mcpu=823 -pipe -Os -MT sectionsd.o -MD -MP -MF ".deps/sectionsd.Tpo" -c -o sectionsd.o sectionsd.cpp; \
        then mv -f ".deps/sectionsd.Tpo" ".deps/sectionsd.Po"; else rm -f ".deps/sectionsd.Tpo"; exit 1; fi
sectionsd.cpp:3403: error: expected unqualified-id before "if"
sectionsd.cpp:3403: error: expected `,' or `;' before "if"
sectionsd.cpp:418: warning: 'void removeEPGFilter(t_original_network_id, t_transport_stream_id, t_service_id)' defined but not used
make[4]: *** [sectionsd.o] Error 1
make[4]: Leaving directory `/home/developer/tuxbox-cvs/apps/tuxbox/neutrino/daemons/sectionsd'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/developer/tuxbox-cvs/apps/tuxbox/neutrino/daemons'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/developer/tuxbox-cvs/apps/tuxbox/neutrino'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/developer/tuxbox-cvs/apps/tuxbox/neutrino'
make: *** [/home/developer/finalresult/cdkflash/root-neutrino] Error 2
3392-3407:

Code: Alles auswählen

	{
		delete[] msgData;
	}

	unlockEvents();

	unlockServices();

	EITThreadsUnPause(); // -> unlock
}

	if ( (messaging_current_servicekey >> 16) == (*uniqueServiceKey >> 16) )
		transponderChanged = false;

static void commandGetIsTimeSet(int connfd, char* /*data*/, const unsigned /*dataLength*/)
406-418

Code: Alles auswählen

	{
		dprintf("Add EPGFilter for onid=\"%04x\" tsid=\"%04x\" service_id=\"%04x\"\n", onid, tsid, sid);
        	EPGFilter *node = new EPGFilter;
	        node->onid = onid;
		node->tsid = tsid;
		node->sid = sid;
        	node->next = CurrentEPGFilter;
        	CurrentEPGFilter = node;
	}
}

static void removeEPGFilter(t_original_network_id onid, t_transport_stream_id tsid, t_service_id sid)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

zeile 418 kannste ignorieren, da es nur ne warnung ist. die funktion ist da, wird aber nicht genutzt.
das

Code: Alles auswählen

if ( (messaging_current_servicekey >> 16) == (*uniqueServiceKey >> 16) ) 
      transponderChanged = false; 
gibts bei mir garnicht an der stelle. da haste nen fehler drinnen. das ist auch auusehalb jeder funktion, deswegen meckert der. lösch das weg, oder // das.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@MB405

hast du eventuell eine Jungfraeuliche Sectionsd.cpp vom 04.06.07 oder wie kann ich diese denn einzeln via CVS updaten ?

Ich versuche es mal auszukommentieren ;-)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Snap von Riker läuft soweit stabil und schnell.

Toll was Nirvana alles auf die Beine stellt!

Mal sehen wie es weiter geht... 8)


Gruß
____Paule
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

PauleFoul hat geschrieben:Mal sehen wie es weiter geht... 8)
jo - bin auch gespannt.
die rwlock änderung sollte ins cvs eingecheckt werden.

innu
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

JO, danke für es einchecken.

Außerdem ein DICKES THX an Nirvana für diese tollen Änderungen!!

Da bleibt mir nur noch zu sagen:

1. Gang rein und Kupplung langsam kommen lassen... :D :D


Gruß
____Paule
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Na, denn lasst uns mal den Nachbrenner zünden:

http://ulc.tuxbox-cvs.sourceforge.net// ... tory=Diffs&

Diff gegen 1.241. Komischerweise wieder ohne Innus Funktionen. Fragt mich nicht, wieso mein CVS die nicht haben will. Bitte ggf. wieder anpassen.

- alle mutex durch rwlock ersetzt
- minor Bugfixes

Mehr kann ich in dem Bereich nicht für die Performance tun. ;)
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Nirvana hat geschrieben:Fragt mich nicht, wieso mein CVS die nicht haben will.
thx - ich bau es grad per hand ein. irgendwann nehm ich das mal persönlich, dass du mich immer wegdiffst ;-)

innu
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Thx,

irgendwas ist bei dem Ding noch leicht suspect. Eben ist die Box abgeschmiert. :roll:
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Na dann hoffe ich mal das bald ein Testsnap oder BIN auftaucht... :D :D


Gruß
____Paule
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

edit: gelöscht
innu
Zuletzt geändert von Innuendo am Samstag 9. Juni 2007, 10:32, insgesamt 1-mal geändert.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

@Innu
Nee, ein unlock gehört da nicht hin. Wird ja vorher nicht gelockt, oder täusche ich mich?

@all
http://ulc.tuxbox-cvs.sourceforge.net/i ... tory=Diffs&

Der Bug war wohl schon etwas länger drin. :D Und betraf die automatische Sendersuche. Da konnte es ein Deadlock geben.
Die Version oben erzeugt ein Bin, das bei mir so läuft, wie ich es mir vorstelle. Stabil & super schnell. Absolute Eincheckempfehlung! ;)
Ich weiß nur nicht, wie ich das mergen kann. Es ist 1.237 als Basis und mein CVS will sich nicht mehr updaten. Vielleicht kopiert es einer in sein CVS mit sectionsd.cpp <1.241 und macht ein CVS update. Dabei werden conflicts entstehen. Wenn mir jemand die Datei schickt, werde ich die noch beheben.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

events kommen sehr flott - absturtz wie bei rwlock4 bisher nicht aufgetreten. mal schauen, wie es nach ein paar stunden ausschaut.

innu
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

irgendwie ehlt in Nirvanas code der extendendtext,epgfilter codeteil :(
deswegen ist da eine unstimmigkeit.